Een bulldozer MODULE bestaat uit twee CORES. En onder een core moet hier verstaan worden het deel van de chip dat zelfstandig x86 instructies kan verwerken.
Tsja, en daarom noem ik het dus ook geen core - omdat AMD het zo noemt hoeft het nog niet zo te zijn

Want als het geen eigen I-cache, fetch en decode stage heeft, waarom zou het dan een aparte core zijn? Het is gewoon een core met twee integer pipelines, dat is niets speciaals, zoals ik al zei, de SPARC T3 heeft dat ook, -per core-. Sterker nog; de allereerste Pentiums hadden ook twee integer pipelines en waren dual issue (daarom was hij o.a. grofweg 2x zo snel als de 486), dat was toch ook maar echt een core. Ok, niet helemaal een geheel eerlijke vergelijking aangezien de Bulldozer module wel twee hardware threads tegelijk ondersteund, en de tweede pipeline op de eerste Pentium restricted was voor bepaalde operaties, maar zo'n heel groot verschil qua idee is er eigenlijk niet.
Qua marketing is het natuurlijk gunstig om te zeggen dat het twee cores zijn. Qua performance zal het daar ook dicht bij in de buurt komen en door de twee hardware threads ziet het er ook zo uit voor de software, ze zullen per thread ook een betere performance hebben dan twee hyperthreaded threads op een enkele intel core omdat er meer executie units beschikbaar zijn. In feite is de term 'core' een beetje vervaagd bij deze processor.
Tsja, zoals AMD het in hun eigen paper verwoord;
It combines two independent cores intended to deliver high per-thread throughput with improved area and power efficiency. A monolithic building block, the Bulldozer module can execute two threads via a combination of shared and dedicated resources. It was designed to deliver superior high performance, general-purpose thread throughput at a given power budget. From the software point of view, the module appears as two fully capable, independent cores.
Several basic observations motivated AMD’s design of the module microarchitecture. First, future SoCs would always support multiple execution threads. Even entry-level client chips were anticipated to support at least two to four threads. This assumption led AMD to explore opportunities to improve efficiency by sharing resources in the smallest possible building block. In many cases, however, sharing hardware among multiple threads influences timing and complexity of critical hardware paths. For these reasons, Bulldozer shares hardware if it’s affordable and profitable (such as front-end and floating-point unit [FPU]) but replicates hardware as necessary for timing and complexity reasons (such as the integer execution core).
Het zijn dus twee cores samengevoegd tot een module, de performance kritische delen apart gehouden en de redundante delen uitgedund. In mijn definitie maakt het dat gewoon een dikke multithreaded core, niet twee
Om nog even wat te zeggen over het caches verhaal, inderdaad elke module heeft een enkele L1 instruction cache, en elke integer pipe heeft zijn eigen L1 data cache en L1 DTLB. Aangezien er maar een FPU is kan deze beide L1 data caches benaderen. De L2 cache wordt door de hele module gedeeld. Overigens hebben ze het in de paper over een 64KB, 2-way L1 instruction cache, 16KB, 4-way L1 data caches, en een 1 of 2 MB 16-way L2 cache.
[Reactie gewijzigd door Squee op 25 juli 2024 09:09]