4004
(Nov 1971)
à»ç¹áºº 4 bit ãªéÊÓËÃѺà¤Ã×èͧ¤Ô´àÅ¢
à¡çº¢éÍÁÙÅãªé 4 bit à¡çº instruction 8 bit Êèǹâ»Ãá¡ÃÁᡨҡÊèǹà¡çº¢éÍÁÙÅ
â´Âà¡çº¢éÍÁÙÅ 1 K bit áÅÐ PC ¢¹Ò´ 12 bit ÊÓËÃѺ â»Ãá¡ÃÁ¢¹Ò´4 K (ãªéã¹ÃٻẺ
stack 4 ªÑé¹ãªé¡Ñº ¤ÓÊÑè§ CALL áÅÐ RET) áÅÐ ÁÕ register à͹¡»ÃÐʧ¤ì¢¹Ò´
4 bit 16 register
8080
(1974)
8008 »ÃСͺ´éǤèÒ PC áÅÐ ¤èÒ
Add ¢¹Ò´ 14 bit address bus ¢¹Ò´ 16 bit data bus ¢¹Ò´ 8 bit Êèǹ»ÃСͺÀÒÂã¹
ÁÕ register ¢¹Ò´ 8 bit ¨Ó¹Ç¹ 7 µÑÇ (A,B,C,D,E,H,L) stack poiter ¢¹Ò´ 16
bit stack ¢¹Ò´ 8 ªÑé¹ PC ¢¹Ò´ 16 bit ÁÕ I/O port ÁÒ¡¶Ö§ 256 port
Zilog
Z-80
¾Ñ²¹Ò¨Ò¡ 8080 à¡çº¢éÍÁÙÅẺ 8
bit áÅÐà¡çº address ¢¹Ò´ 16 bit ÊÒÁö·Ó·Ø¡ opcode ¢Í§ 8080 ä´é áÅÐà¾ÔèÁÍÕ¡
80 ªØ´ ªØ´¤ÓÊÑè§·ÕèÁÕ¢¹Ò´ 1,4,8 áÅÐ 16 bit ªØ´¢Í§ register ÁÕ à»ç¹ 2 à·èÒ
¹Í¡¨Ò¡¹ÕéÂѧÁÕÃкº»¯ÔºÑµÔ¡Ò÷ÕèÃÇ´àÃçÇ ËÃ×Í ¡Òà interrupt z80 à¾ÔèÁ register
·Õèãªéà»ç¹ index 2 µÑÇ£ ¤×Í IX,IY áÅÐ interrupt ÁÕÅѡɳÐà»ç¹àÇ¡àµÍÃì «Öè§·Ó¡ÒÃ
relocate ä´é ·Ó§Ò¹·Õè ÍѵÃÒ clock ¢Í§ z-80 = 2.5 MHz Z-80-H = 6MHz
Zilog
Z-8000 ,another direct competitor
z-8000 à¼Âá¾ÃèËÅѧ¨Ò¡ 8086 ä´éäÁè¹Ò¹
áµèÁÕ»ÃÐÊÔ·¸ÔÀÒ¾·ÕèÁÕ processor ¢¹Ò´ 16 bit áµèÊÒÁÒö·ÓãËé address à¾ÔèÁä´é¶Ö§
23 bit â´Âãªé register ã¹áºº segment (·ÓãËéà¾ÔèÁ 7 bit Z-8000 ÁÕ register
¢¹Ò´ 16 bit ¨Ó¹Ç¹ 16 µÑÇ áµè¢¹Ò´ register Â×ÍËÂØè¹ä´é register 8 µÑÇáá
¢Í§ Z-8000 ÊÒÁÒöãªéà»ç¹ register ¢¹Ò´ 8 bit ¨Ó¹Ç¹ 16 µÑÇä´é (â´Â¡Ó˹´à»ç¹
RH0,RL0,RH1,....) ËÃ×Í 16 µÑÇ ÊÒÁÒöÃÇÁà»ç¹ register ¢¹Ò´ 32 bit ¨Ó¹Ç¹
8 µÑÇ â´Âãªéà»ç¹ register à͹¡»ÃÐʧ¤ì register 15 ãªéà¡çº stack pointer
,register 14 ãªéà¡çº stack segment (·Ñé§Êͧ register ÍéÒ§ÍÔ§à»ç¹ 35 bit
(RR214)) ªØ´¤ÓÊÑè§à»ç¹áºº 32 bit ÊÒÁÒöà¾ÔèÁà»ç¹·ÇÕ¤Ù³(à»ç¹ 64 bit) áÅÐ
áºè§Å´Å§ä´é Z-800 à»ç¹ÃØè¹ááã¹áºº 2 âËÁ´ âËÁ´ááÊÓËÃѺÃкº OS(Operating
System) áÅÐÍÕ¡âËÁ´ãªéÊÓËÃѺ â»Ãá¡ÃÁ¢Í§¼Ùéãªéã¹ÊèǹâËÁ´ÊÓËÃѺ¼Ù&eacut
e;ãªé¨Ð«è͹Êèǹ·Õè«Ñº«é͹à¡ÕèÂǡѺ¡Òà ; interrupt áÅÐÊèǹ¹·ÕèäÁè¨Óà»ç¹µéͧ·ÃÒº
Z-800 ÁÕǧ¨Ã Refresh RAM Íѵâ¹ÁÑµÔ ÁÕ¢éÍàÊÕ·ÕèºÒ§¤ÃÑé§¡ç·Ó§Ò¹ªéÒ áµè¡çà»ç¹¼ÅÁÒ¨Ò¡
feature µèÒ§æ·ÕèÁÕ ÃØè¹¶Ñ´ÁÒ ¡ç¤×Í Z-8000 à»ç¹·ÕèÃÙé¨Ñ¡ã¹»Õ 1986 ¾ÃéÍÁæ¡Ñº
CPU ÃØè¹ 32 bit MC68020 áÅÐ Intel 80386 áµè Z-80000 ÁÕ¢éÍ·Õè´Õ¡ÇèÒàÅ硹éÍÂ
Z-80000 ¢ÂÒÂä´éàµçÁ·Õè¶Ö§ 32 bit ÊÓËÃѺ addressing mode ¢Í§ Z-8000 ·Ó¡ÒÃà¾ÔèÁ
segment addressing ÁÒ¡¡ÇèÒ 24 bit áÅÐÂѧÁÕ¡ÒÃà¾ÔèÁ MMU(ã¹ CPU 68020 äÁèÁÕáµèà¾ÔèÁŧä»ã¹
68030) «Öè§à¾ÔèÁ chip 16 line 256-byte à¾×èÍ»ÃÐÊÒ¹§Ò¹¡Ñº cache ä´éÍÂèÒ§àµçÁ·Õè
Z-80000 à»ç¹ÁÑŵÔâ»Ã´«Êà«ÍÃì à¾ÃÒÐÁÕ¡ÒáÓ˹´ memory pages ¹Í¡ÂÒ¡¹ÕéÂѧãªé
coprocessor ªèÇÂ㹡Òà ´Ù¡Ò÷ӧҹ¢Í§ data bus áÅк觺͡¤ÓÊÑè§·ÕèãªéÊÓËÃѺ
CPU Z-8000 ·Ó§Ò¹à»ç¹ pipeline (6 stage) ÃØè¹·Õè·Ó¡Òà pipeline ÍÂèÒ§àµçÁ·Õè¤×ÍÃØè¹
80486 áÅÐ 68040 ÍÍ¡ÁÒã¹»Õ 1991
INTEL
8086 , IBM ‘S CHOICE (1978 )
à«ç¡àÁé¹µìÃÕ¨ÕÊàµÍÃì( ¤Ù³´éÇÂ
16 ËÃ×Í ªÔ»«éÒÂ4ºÔµ )·ÕèáÍ´à´ÃÊ à˵ؼŢͧ¤ÇÒÁäÁè»ÃÐʺ¤ÇÒÁÊÓàÃç¨ã¹¡ÒâÂÒÂà¹×éÍ·Õè¢Í§áÍ´à´ÃÊâ´ÂäÁèµéͧÍÒÈÑ¡ÒÃà¾ÔèÁáÍ´à´ÃʺԵ«Öè§ÍÒ¨·Óä´éâ´Â¡ÒÃãªé¾ÍÂàµÍÃì
2 µÑÇ«Ö觪Õé¤èÒà´ÕÂǡѹáµèµèÒ§ memory location ¡Ñ¹ ËÃ×Í ¾ÍÂàµÍÃì 2 µÑÇ«Ö觪Õé¤èÒµèÒ§¡Ñ¹·Õè
memory location à´ÕÂǡѹáÅж١¨Ó¡Ñ´ãËéºÃèآéÍÁÙÅä´éá¤è 64 ¡ÔâÅ亵ìáµè¼Ùé»ÃдÔɰì¡ÓÅѧ»ÃÐʺ»ÑËÒ
·Ò§´éÒ¹¡ÒôÕ䫹ì
¶Ö§áÁéÇèÒ¨Ðä´éÃѺ¡ÒÃÂÍÁÃѺÍÂèÒ§á¾ÃèËÅÒÂã¹ÀÒÉÒáÍÊà«ÁºÅÕ«Ö觤Ǻ¤ØÁà«¡àÁ¹µìä´éÍÂèÒ§ÊÁºÙóì
áµèã¹ÀÒÉÒªÑé¹ÊÙ§¹Ñ鹨лÃÐʺ»ÑËÒ㹡ÒÃãªé near/far pointeráÅÐÂѧÁÕ¼ÅàÊÕÂ
ã¹´éÒ¹¡ÒÃà¾ÔèÁà¹×éÍ·Õè address «Ö觨зÓä´éÂÒ¡ ã¹ 80286 «Öè§¼ÅÔµÍÍ¡ÁÒã¹»Õ
1982 ä´é¢ÂÒ¡ÒôÕ䫹ìÍÍ¡à»ç¹ 32 ºÔµ â´Â¡ÒÃà¾ÔèÁâËÁ´ãËÁèà¢éÒÁÒ ( ÁÕ¡ÒÃÊÇÔªªÔ觨ҡ
Real ä»Âѧ Protected âËÁ´ áµè¡ÒÃÊÇÔªªÔè§¡ÅѺ¹Ñé¹ÂѧµéͧÍÒÈÑ bug ã¹ 80286
ÃØè¹¡è͹«Öè§Âѧ¤§µéͧÃÑ¡ÉÒäÇé ) «Öè§µéͧà¾ÔèÁ¨Ó¹Ç¹¢Í§à«¡àÁ¹µìÍÂèÒ§ÁÒ¡â´ÂãªéµÑÇ
selecter ¢¹Ò´ 16 ºÔµÊÓËÃѺ “ segment descriptor” «Ö觺ÃÃ¨Ø location ã¹áÍ´à´ÃÊ¢¹Ò´
24 ºÔµ , ¢¹Ò´( Âѧ¤§¹éÍ¡ÇèÒ 64K ) áÅÐÁդسÊÁºÑµÔ ( Vertual Memory support)
¢Í§ segment
áµè¡ÒÃà¢éÒ¶Ö§ memory Âѧ¤§¶Ù¡¨Ó¡Ñ´á¤è
64K segments ¨¹¡ÃзÑè§ 80386 ä´é¼ÅÔµÍÍ¡ÁÒã¹»Õ 1985 «Öè§ÃÇÁ¶Ö§¡ÒþѲ¹Ò addressing
: base reg + index reg * scale ( 1,2,4 ËÃ×Í 8 ºÔµ ) + displacement ( 8
ËÃ×Í 32 bit constant = 32 bit address ( ã¹ÃٻẺ¢Í§ paged segme( â´Âãªéà«¡àÁ¹µìÃÕ¨ÔÊàµÍÃ좹Ҵ
16 ºÔµ 6 µÑÇ ) ¤ÅéÒ¡ѺµÃСÙÅ IBMS / 360 áµèäÁèàËÁ×͹¡ÑºµÃСÙÅ Motorola
68030 )«Ö觨ÐÁÕ Processor âËÁ´à©¾ÒÐ( ÃÇÁ¶Ö§ÁÕ¡ÒÃáºè§á¡ paged áÅÐ segmented
âËÁ´ ) «Öè§ÊÍ´¤Åéͧ¡Ñº¡ÒÃÍÍ¡áººÃØè¹¡è͹æ 㹤ÇÒÁà»ç¹¨ÃÔ§áÅéǨж١µéͧ¡ÑºáÍÊà«ÁàºÅÍÃì
code ¹Ñé¹¶Ù¡à¢Õ¹ÊÓËÃѺ 8008 «Öè§ÊÒÁÒö run º¹ Pentium Pro ä´éã¹ 80386
¹Ñé¹ä´éà¾ÔèÁ MNU à¢éÒÁÒà¾×èÍ security modes ( ËÃ×ÍàÃÕ¡ÇèÒ “ring” ¢Í§ system
services,application services,application ) áÅÐÂѧÁÕ opcode ãËÁè«Öè§ÁÕÃٻẺ¤ÅéÒ¡Ѻ
Z-80
80486 «Öè§¼ÅÔµÍÍ¡ÁÒã¹»Õ 1989 ä´éÁÕ¡ÒÃà¾ÔèÁ
pipelines ÍÂèÒ§ÊÁºÙóì ÁÕᤪ 8K º¹ªÔ»ÃÇÁ¡Ñº FPU (à»ç¹¾×é¹°Ò¹¢Í§ eight elemant
80- ºÔµáʵ¡-Orientted FPUã¹ 80387 FPU )áÅÐÁÕ¡ÒÃà¾ÔèÁ clack à»ç¹ 2 à·èÒ(
¤ÅéÒ Z-280 ) ã¹à¾¹à·ÕÂÁ«Öè§¼ÅÔµÍÍ¡ÁÒã¹»ÅÒÂ»Õ 1993 à»ç¹áºº Superscalar
( 1 integer unit áÅÐ Singel FPU ) ¡Ñºáºè§á¡ 8K I/D ᤪ
ྐྵà·ÕÂÁ à»ç¹ª×èÍ«Öè§ãªéá·¹ 80586
à¾ÃÒÐÇèÒª×èÍ 586 ¹Ñé¹äÁèÊÒÁÒö»éͧ¡Ñ¹ºÃÔÉÑ·Í×è¹æ ·Õè¾ÂÒÂÒÁ¨ÐÅÍ¡àÅÕ¹Ẻä´é
áÅÐ㹤ÇÒÁà»ç¹¨ÃÔ§¹Ñé¹ Pentium ÁÕÅѡɳФÅéÒ¡Ѻ CPU ¨Ò¡ NexGen ÃØè¹ Nx586
«Öè§¼ÅÔµÍÍ¡ÁÒã¹»Õ 1995 80x86 à»ç¹ cloned processors ÁÒ¡·ÕèÊØ´ ¨Ò¡ NEC V20/
V30( «Öè§ÁÕ cloned àÃçÇ¡ÇèÒ 8088/8086 ( ÊÒÁÒö run º¹ 8085 ä´é AMD áÅÐ
Cyrix clones ¢Í§ 80386 áÅÐ 80486 ä»¶Ö§ Pentium
ʶһѵ¡ÃÃÁÃØè¹¡è͹æ¹Ñ鹨зӡÒÃãËé¡ÒÃ
compatible º¹CPU ¢Í§à¾¹à·ÕÂÁ( Nx586 / Nx686, AMD K5 )áÅÐ “Pentium Pro”
äÁèà»ç¹ clone ྐྵà·ÕÂÁáµèÁÕ¡ÒÃàÅÕ¹Ẻ Hardware Decoder à»ç¹¾ÔàÈÉ «Ö觨Ðà»ÅÕ蹤ÓÊÑè§ã¹
ྐྵà·ÕÂÁä»Âѧ RISC ( ¤ÓÊÑè§·Õè Executed º¹ RISC cores ¨ÐàÃçÇ¡ÇèÒº¹à¾¹à·ÕÂÁ
( Cyrix / IBM 6x86 «Öè§¼ÅÔµÍÍ¡ÁÒ㹪èǧµé¹»Õ 1996 Âѧ¤§ executed ¤ÓÊÑ觢ͧ
80x86 ã¹ 2 pipelines áµèàÃçÇ¡ÇèÒྐྵà·ÕÂÁ «Öè§·ÓãËéµÍ¹¹Õéà¡Ô´¢èÒÇÅ×Í·ÕèÇèÒ
IBM ¡ÓÅѧ¾Ñ²¹Ò?ÒÃì´áÇÃì·Õèá»Å§¤ÓÊÑè§à¾¹à·ÕÂÁÊÓËÃѺ Power PC ã¹ CPU ÃØè¹
Power PC 615 «Öè§àÅÔ¡ãªéä»áÅéÇ
ྐྵà·ÕÂÁâ»Ã ËÃ×ÍÍÕ¡ª×èÍ˹Öè§ÇèÒ
P6 à»ç¹ 1 ËÃ×Í 2 ªÔ»( CPU plus 256K ËÃ×Í 512K L2 cache - L/d L1 cache(
ÍѹÅÐ 8 ¡ÔâÅ亵ì ) «Öè§ÍÂÙ躹 CPU à»ç¹ Super piplined processor »ÃСͺ´éÇÂ
3 decoder ( complex instruction 1 µÑÇ , simpler ones 2µÑÇ ) ·Ó˹éÒ·Õèá»Å§¤ÓÊÑè§ã¹
80x86 ä»à»ç¹ Micro-Ops ( one per simpler decoder + Up to four from the
complex decoder = three to six per cycle ) ¢Öé¹ä»à»ç¹ 5 micro ops «Öè§»¡µÔÁÕá¤è
3 à·èÒ¹Ñé¹ ÊÒÁÒö¡èÍãËéà¡Ô´¼Åã¹Ãкº Parallel áÅÐ order ( 6 unit - FPU ,
2 integer , 1 load/store )ã¹ 80x86 instruction ÍÒ¨¨ÐÊÃéÒ§ micro-ops ã¹
CPU ¤ÅéÒ¡Ѻ Nx586 áÅÐ AMD K5 à¾ÃÒЩйÑ鹨Ðä´éÍѵÃÒ¤ÓÊÑè§µèÓ ã¹¤ÇÒÁà»ç¹¨ÃÔ§áÅéǨлÃÐʺ»ÑËÒã¹´éÒ¹
Handing instruction «Öè§à»ç¹¡ÒÃÇÒ§á¹Ç·Ò§ã¹ Pentium Pro â´ÂÁÕ¡ÒÃàÅÕ¹Ẻ¤ÓÊÑè§¢¹Ò´
16 ºÔµ «Öè§ execute ä´éªéÒ¡ÇèÒº¹à¾¹à·ÕÂÁ
AMD K5 á»Å§ 80x86 code ä»à»ç¹
ROPS ( RISC Operation ) «Öè§ execute º¹¾×é¹°Ò¹¢Í§ RISC core º¹ Superscalar
AMD 29K ¢Öé¹ä»¨¹¶Ö§ 4 ROPs ÊÒÁÒöÊè§ä»¶Ö§ 6 units ( 2 integer , 1 FPU ,
2 load/store , 1 branch unit ) áÅÐ 5 ÊÒÁÒöáÊ´§¼Å·ÕèàÇÅÒ¹Ñé¹ä´é ¤ÇÒÁ«Ñº«é͹㹡ÒÃãªéÊÑÒ³¹ÒÌÔ¡Ò·ÕèÁÕ¤ÇÒÁàÃçǵèÓÊÓËÃѺ
K5 ¹Ñ鹨ÐàÃçÇ¡ÇèÒ AMD ·Õè«×éÍÅÔ¢ÊÔ·¸Ôì NexGen áÅÐÃÇÁ¡ÒôÕ䫹ìÊÓËÃѺ K6
ÃØè¹µèÍä»
NexGen / AMD Nx586 «Öè§¼ÅÔµÍÍ¡ÁÒ㹪èǧ»ÅÒ»Õ
1994 ¹Ñé¹ÊÒÁÒö execute micro-ops ( RISC86 code ) ËÒ¡Áͧä»áÅéǾºÇèÒâ»Ãá¡ÃÁ·Õè¶Ù¡à¢Õ¹´éÇÂ
RISC86 ¨ÐàÃçÇ¡ÇèÒËÃ×Íà·èҡѺ x86 program áµè¨ÐäÁè¤è͹ÔÂÁãªé ÁÕÅѡɳÐ੾ÒФ×Í»ÃÃСͺ´éÇÂ
16K I/D L1 cache 2 µÑÇ , L2 cache bus ( ¤ÅéÒ¡Ѻ㹠Pentium Pro 2- Chip
module )
Nx586 ·Õè»ÃÐʺ¤ÇÒÁÊÓàÃ稹Ñé¹ K6
( ¼ÅÔµÍÍ¡ÁÒã¹»Õ 1996 ) »ÃСͺ´éÇÂᤪ 3 ªÔé¹ ªÔé¹ÅÐ 32K ÊíÒËÃѺ¢éÍÁÙÅáÅФÓÊÑè§
áÅÐÍÕ¡ 16K ÊÓËÃѺºÃèآéÍÁÙÅ¡Òà decode ¤ÓÊÑè§áÅÐÂѧä´é¹Ó FPU ä»ÃÇÁäÇéã¹
chip áÅТ¨Ñ´ cache bus ¢Í§ Nx586 ÍÂèÒ§äáçµÒÁ¡çÂѧ¤§ÃٻẺ¤ÇÒÁà»ç¹ pin
äÇé ÍÕ¡·Ñé§Âѧ compatible ¡Ñº P54C model Pentium Êèǹ decoder Í×è¹æ¹Ñé¹
¨ÐÁÕ¡ÒÃà¾ÔèÁ 2 complex decoder «Öè§áµ¡µèÒ§¨Ò¡ Pentium Pro «Öè§ãªé 1 complex
decoder áÅÐ 2 simple decoder áÅÐà¾ÔèÁ micro -ops ¨Ò¡ 4 à»ç¹ 6 ( ä»Âѧ 7
unit - load , store , complex/simple integer , FPU , branch , multimedia
)
AMD ä´éÃѺ͹ØÒµ¨Ò¡ MMX ( Matrix
Math eXtension ) ãËé¼ÅÔµ CPUs «Öè§¢³Ð¹Ñé¹·Ò§ Intel ¡ç¡ÓÅѧ¾Ñ²¹Ò Pentium
áÅÐ Pentium Pro ÍÂÙè â´Â MMX ¹Ñé¹ÁÕÅѡɳФÅéÒ¤ÅÖ§¡Ñº SPARC VIS ËÃ×Í HP-PA
MAX â´Â MMX instruction ¹Ñ鹨ÐáÊ´§¡ÒèѴ¡Òà integer à»ç¹¡ÅØèÁ æ ¢Í§ 8 ,
16 ,32 , bit word ãªé 80 bit FPU stack 64 bit register 8 µÑÇ ( ÊÇÔªªÔè§ÃÐËÇèÒ§
FPU áÅÐ MMX âËÁ´·Õèµéͧ¡Òà ÁѹÂÒ¡·Õè¨Ðãªé stack áÅÐ MMX register ·ÕèàÇÅÒà´ÕÂǡѹ
Cyrix µÑé§ã¨¨Ðãªé clones ¢Í§ instruction ¹Õéä»ÊÃéÒ§ M2 CPU
Intel ä´éÃèÇÁÁ×͡Ѻ Hewlett-Packard
·Õè¨Ð¾Ñ²¹Ò Processor ¢¹Ò´ 64 ºÔµ ÃØè¹µèÍä» â´ÂãËé compatible ¡Ñº 80x86
«Öè§ãªé¤ÓÊÑè§ã¹¡ÒÃá»Å§ËÃ×Í coprocessor º¹¾×鹰ҹ෤â¹âÅÂբͧ Very Long
Instruction Word «Öè§ÍÒ¨¨Ð¹ÓÍÍ¡ÁÒà»Ô´à¼Âã¹äÁèªéÒ¹Õé
AMD
29000 , A flexible register set (1987)
AMD 29000 à»ç¹ RISC CPU ÍÕ¡ÃØè¹Ë¹Öè§«Ö觾Ѳ¹ÒÁÒ¨Ò¡
Berkeley RISC ( áÅÐà»ç¹â»Ãਤ¢Í§ IBM 801) ÁÕ¤ÇÒÁ·Ñ¹ÊÁÑ¡ÇèÒ 29000 ÃØè¹¡è͹«Öè§à»ç¹áºº
bitslice ( ¼ÅÔµÍÍ¡ÁÒ㹡ÅÒ§»Õ 1981 ) ÁÕ¤ÇÒÁ¤ÅéÒ¤ÅÖ§¡Ñº SPARC «Öè§ÍÍ¡ÁÒËÅѧ¨Ò¡¹Ñé¹äÁè¹Ò¹
29000¹Õé»ÃСͺ´éÇÂ૵¢Í§ register «Öè§ãËèÁÒ¡ÃÇÁÍÂÙèã¹ Local áÅÐ Grobal
set áµèÍÂèÒ§äáçµÒÁ 29000 ¹Õéä´é¹ÒÍÍ¡ÁÒ¨Ò˹èÒ¡è͹ SPARC ·ÕèÁÕ¡ÒèѴ¡Ò÷ҧ´éÒ¹
register ·Õè´Õ¡ÇèÒ
29000 ¹Ñé¹»ÃСͺ´éÇ 64 grobal
register «Öè§ã¹ SPARC ¹Ñé¹ÁÕá¤è 8 ÍÕ¡·Ñé§¡Òà allocate ¢¹Ò´¢Í§µÑÇá»ÃÂѧãªé¨Ò¡
128 ÃÕ¨ÔÊàµÍÃì stack cache ÊÓËÃѺ Stcak Fram ·Õè¶Ù¡ºè§ºÍ¡â´Â stack pointer(
à»ç¹ÃØè¹¢Í§ ISAR regisler ã¹ Fairchild F8 CPU ) ¾ÍÂàµÍÃì·ÕèªÕé caller‘s
frame¤×Í current frame «Ö觤ÅéÒ¡Ѻáʵ¡¸ÃÃÁ´Ò Spill áÅÐ Fill ¨Ðà¡Ô´¢Öé¹·ÕèÊèǹ·éÒ¢ͧ
ᤪà·èÒ¹Ñé¹ áÅÐÃÕ¨ÕÊàµÍÃì¨Ðà»ç¹µÑÇ loaded/saved ¤èҢͧ˹èǤÇÒÁ¨Óáʵ¡«Ö觤èÒ¹Õé¨Ðá»ÃµÒÁ¢¹Ò´¢Í§ÇÔ¹â´Çì¨Ò¡
1 ¶Ö§ 128 ÃÕ¨ÔÊàµÍÃìáµè¨ÐÂ×´ËÂØè¹µÒÁ¤ÇÒÁãËè¢Í§ â¡ÅºÍÅÃÕ¨ÔÊàµÍÃì ·ÓãËé¡ÒÃáºè§ÊÃÃÃÕ¨ÕÊàµÍÃì¨Ð§èÒ¡ÇèÒã¹
SPARC
äÁèÁÕÍÐäþÔàÈÉ㹡Òä͹´ÔªÑè¹â¤´ÃÕ¨ÕÊàµÍÃì
«Öè§ÃÕ¨ÕÊàµÍÃìâ´Â·ÑèÇ仨ÐÍÒÈÑÂËÅÑ¡¡ÒÃá·¹·Õè ÍÂèÒ§äáçµÒÁ¤Í¹´ÔªÑè¹â¤´Âѧ¤§¶Ù¡à¡çºÃÑ¡ÉÒäÇé¶Ö§áÁéÇèÒºÒ§¤ÃÑ駨еéͧ·ÓâËÁ´·Õè«Ñº«é͹ÁÒ¡¢Öé¹
¤ÓÊÑè§Ë¹Öè§ÍÒ¨¨Ðµéͧ·Ó¡è͹ fetch ºÑºà¿ÍÃì( ãªé burth âËÁ´ ) à¾ÃÒЩйÑé¹ÊÔè§áá·Õèµéͧ·Ó
¡è͹àÃÔèÁ¤ÓÊÑè§ãËÁè¤×Í¡ÒÃᤪ¶Ñ´ÁÒ¤×Í¡ÒÃᤪ branch ( ¢Öé¹ä»à»ç¹ 16 ) Êèǹ
cache supplies instruction ¹Ñ鹨зӪèǧ´ÕàÅÂì㹡ÒÃà¢éҶ֧˹èǤÇÒÁ¨Ó
ÃÕ¨ÕÊàµÍÃì¨ÐäÁè¶Ù¡ saved ÃÐËÇèÒ§¡ÒÃÍÔ¹à·ÍÃѾµì
ÊÔè§ÊӤѢͧ¡Ò÷ÓÍÔ¹à·ÍÃѾµì¤×͵éͧ¤Ô´ÇèÒ ·ÓÍÂèÒ§äö֧¤ØéÁ¤èÒ ´Ñ§¹Ñ鹨֧µéͧ¨Ñ´·ÓÃٻẺ¢Í§¡ÒäǺ¤ØÁ¡ÒÃà¢éÒ¶Ö§ÃÕ¨ÕÊàµÍÃì
â´ÂÃÕ¨ÕÊàµÍÃì·Ñé§ËÁ´ÊÒÁÒö»éͧ¡Ñ¹ä´é 㹺ÅÍ¡¢Í§ 4 ¨Ò¡¡ÒÃà¢éÒ¶Ö§ ÊÔè§¹Õé·ÓãËé
29000 ÊÒÁÒöãªé»ÃÐ⪹ìÊÓËÃѺáͺ¾ÅÔपÑè¹µèÒ§æä´é «Öè§ÊÔè§¹Õé¨Ð¶Ù¡ãªé§Ò¹â´Â
Processor ÁÒ¡·ÕèÊØ´ ÍÂèÒ§äáçµÒÁÊÔè§¹Õé¡çà»ç¹µÑÇÂ×¹ÂÑ¹Ç èÒ·ÓäÁ RISC Processor
¶Ö§ä´éÃѺ¤ÇÒÁ¹ÔÂÁÊÙ§ÊØ´ 29000 ä´é·Ó¡ÒÃà¾ÔèÁ MMU áÅÐÂѧʹѺʹع 29027 FPU
, Superscalar 29050 «Öè§¼ÅÔµÍÍ¡ÁÒã¹»Õ1990 ä´éÃÇÁàÍÒ FPU «Öè§ä´éÍ͡ẺãËÁèâ´Âãªé
4 instruction «Öè§ÊÒÁÒöÊè§ä» execute Out of order áÅÐ Speculatively
㹪èǧ»ÅÒÂ»Õ 1995 ºÃÔÉÑ· Advanced
Micro Devices ä´éàÅÔ¡¾Ñ²¹Ò 29K «Öè§ä´é»ÃÐ⪹ìÁÒ¡¡ÇèÒ clones ¢Í§ Intel
80x86 processor ¶Ö§áÁéÇèҨоѲ¹Ò superscalar ä»ÁÒ¡áÅéÇà¾×èͼÅÔµ AMD 29000
ÃØè¹ãËÁè «Öè§ÁÕ¡ÒÃà¾ÔèÁ FPU ( Í͡ẺÁÒ¨Ò¡ 29050 ) à¢éÒä»à¾×èͨРshared
¡Ñº K5 ( ÍÍ¡ÁÒã¹»Õ 1995 ) à»ç¹ processor «Öè§ compatible ¡Ñºà¾¹à·ÕÂÁ (
K5 ÊÒÁÒöá»Å§¤ÓÊÑ觢ͧ 80x86 ä»à»ç¹ RISC ä´é
Motolola
8800,late but elegant(Mid 1988)
Motolola
88000 «Öè§ÍÍ¡ÁÒ¶Ñ´¨Ò¡ÃØè¹ 78000 ¹Ñé¹à»ç¹ Processor ¢¹Ò´ 32 ºÔµ áÅÐÂѧà»ç¹Ë¹Öè§ã¹
Processor à¤Ã×èͧáÃ¡æ ¢Í§áºº RISC â´ÂÁÕ¾×é¹°Ò¹ CPU ÁÒ¨Ò¡ Harvard Architecture
( ¤ÅéÒ¡Ѻ Fairchild / Intergraph Clipper C100 (1986))áµèÅкÑʨÐÁÕᤪᡡѹ´Ñ§¹Ñé¹àÇ
ÅÒà¢éÒ¶Ö§ ¢éÍÁÙÅáÅФÓÊÑè§ ¨Ð äÁèà¡Ô´¢Öé¹¾ÃéÍÁ¡Ñ¹ ¶éÒäÁè¹ÑºÊèǹ¹ÕéáÅéǨÐÁÕ¤ÇÒÁ¤ÅéÒ¤ÅÖ§¡Ñº
ʶһѵ¡ÃÃÁ¢Í§ Hewlett Packard Precision ( HP / PA ) «Öè§ÁÕ¡ÒÃÍ͡ẺãËéÁÕ¡ÒÃà¾ÔèÁ
ÃÕ¨ÕÊàµÍÃìÊÓËÃѺ¤Çº¤ØÁʶҹÐÁÒ¡ÁÒ «Öè§ãªéã¹âËÁ´¡ÒäǺ¤ØÁ ¶Ö§áÁéÇèÒ 88000
¨ÐÁÕ¡ÒÃà¾ÔèÁÊÔè§µèÒ§æà¢éÒÁÒÁÒ¡¡ÇèÒ ¤×ÍÁժش¤ÓÊÑè§·ÕèÁÕ¢¹Ò´àÅç¡áÅÐÊǧÒ
ÁáÅÐÁÕ Segment addressing ¹éÍ ¤×ͨӡѴ addressing ·Õè 32 ºÔµ á·¹·Õè¨Ðà»ç¹
64 ºÔ´áÅÐÂѧÁÕ88200 MMU unit áÅÐᤪ¤Ùè ( ä´é·Ó¡ÒÃà¾ÔèÁ multiprocessor à¢éÒÁÒ
) áÅпѧ¡ìªÑè¹ MMU ÊÓËÃѺ CPU 88100 ( ¤ÅéÒ¡Ѻ Clipper ) Êèǹ 88110 ä´é·Ó¡ÒÃà¾ÔèÁᤪáÅÐ
MMU º¹ªÔ»
88000 »ÃСͺ´éÇÂ
user register ¢¹Ò´ 32 ºÔµ 32 µÑÇ , 8 distinct internal - ALU áÅÐ ÂÙ¹Ô·ªì¨Ó¹Ç¹¨ÃÔ§
( ÁÕ¡ÒÃãªé single register set ÃèÇÁ¡Ñ¹ ) ã¹ÃØè¹ 88100 ¹Ñé¹ä´é·Ó¡ÒÃà¾ÔèÁ
ALU ÊÓËÃѺ¡Òäٳà¢éÒÁÒ áÅÐ FPU Unit ( »ÃСͺ´éÇÂÃÕ¨ÕÊàµÍÃì FPU ¢¹Ò´ 80
ºÔµ 30 µÑÇ ) ã¹ÃØè¹ 88110 ä´éÁÕ¡ÒÃà¾ÔèÁ¡ÃÒ¿¿Ô¡à¢éÒä» â´Â bit unit ¨Ð¶Ù¡
pack áÅÐ unpack ã¹ 4 , 8 ,16 ºÔµ¨Ó¹Ç¹àµçÁ( pixels ) áÅкÃèØÅ§ã¹ 32 bit
word áµè¼ÅÔµÍÍ¡ÁÒªéÒáÅÐäÁèä´éÃѺ¤ÇÒÁ¹Ô ÂÁà·èҡѺ MIPS ËÃ×Í HP processor
88000 à»ç¹
processor ·Õè·Ñ¹ÊÁÑÂáÅÐÂѧÁÕÃкº pipeline ( ¡Ñº interlocks ) áÅÐÁռŷÓãËé¡éÒÇ
仢éҧ˹éÒ ã¹ 88110 ALU ÊÒÁÒö¹Ó¼Åä»Âѧä«à¤ÔŶѴä»ä´é ¡Òà Loaded / Saved
ã¹ 88110 ¨Ð¡ÃзӡѺºÑ¿à¿ÍÃì ´Ñ§¹Ñé¹ processor ¨Ö§äÁèµéͧÁÕ¡ÒäÍ ¡àÇé¹àÁ×èÍÁÕ¡ÒÃâËÅ´¤èÒä»äÇé·Õè
˹èǤÇÒÁ¨Ó ¨Óà»ç¹µéͧÁÕ¡ÒäÍÂãËéÁÕ¡Òúѹ·Ö¡¢éÍÁÙÅàÊÃç¨ÊÔ鹡è͹
CPU 860
CPU ÃØè¹
860 ÁÕËÅÒ¡ËÅÒÂâËÁ´¡Ò÷ӧҹ ¨Ò¡ scaler mode 仨¹¶Ö§ superscelar mode (¡Ò÷ӤÓÊÑè§áººäÁèµéͧÃÍãË騺·ÕÅФÓÊÑè§
¨Ð·Ó¤ÓÊÑè§ä»àÃ×èÍ æ â´Âãªé¤èÒ·ÕèÁÕÍÂÙèà·èÒ·ÕèÊÒÁÒö¨Ð·Óä´é) â´Âãªé cach
¢¹Ò´ 8k ã¹áºº·Õè¨Ó¡Ñ´ à»ç¹ vector register ¢¹Ò´àÅç¡ (·Õèãªéã¹ supercomputers)
cache ·Õè¹Í¡à˹×ͨҡ¹Õéãªéà»ç¹ address àÊÁ×͹ á·¹·Õè¨Ðà»ç¹áºº¡ÒÂÀÒ¾ ¤ÓÊÑè§áÅÐ
data bus á¡ ¨Ò¡¡Ñ¹ â´Â 4G ÊÓËÃѺ˹èǤÇÒÁ¨Ó ãªéẺ segmentáÅÐãªé˹èǨѴ¡ÒÃ˹èǤÇÒÁ¨Ó
ÊÓËÃѺ·Õè à¡çºáººàÊÁ×͹ 860 ÁÕ register ¢¹Ò´ 32 bit ¨Ó¹Ç¹ 32 µÑÇ áÅÐ register
Ẻ floating point 32 bit ¨Ó¹Ç¹ 32 µÑÇ 860 à»ç¹ microprocessor ã¹ÃØè¹áá
æ ·ÕèÁÕ FPU ,integer ALU áÅÐ 3-D graphic unit (µÔ´ÍÂÙè¡Ñº FPU) ãªéÊÓËÃѺ¡ÒÃÇÒ´àÊé¹
Motorola
68000
68000 ÁÕ
16 32-bit register â´Âá¡à»ç¹ data áÅÐ address registers 1 address registeräÇéÊÓËÃѺ
stack pointer áÅÐ data registers ÊÒÁÒöãªéÊÓËÃѺ¡Òà operation µèÒ§æ«Öè§»ÃСͺ仴éÇÂ
¡ÒÃâµéµÍº¨Ò¡ address register áµèäÁèàËÁ×͹¡ÒÃãªé¢éÍÁÙŨҡ address àͧ ¡ÒÃ
operation º¹ address register ¶Ù¡¨Ó¡Ñ´ã¹¡Òà move , add / subtract ËÃ×Í
load ¨Ò¡ address operations àËÁ×͹¡Ñº CPU â´Â·ÑèÇä»ã¹àÇÅÒà´ÕÂǡѹ 68000ÊÒÁÒö
fetch ¤ÓÊÑè§¶Ñ´ä» ã¹¢³Ð·Õè·Ó¡Òà execution ( 2 stage pipeline ) 68000ÁÕ32bitsunits
ÀÒÂã¹ ·Óä´éÃÇ´àÃçÇ ÊÒÁÒöá¡áÂÐ forced segmentation ¶Ù¡Í͡ẺÊÓËÃѺ¢ÂÒ»ÃСͺ仴éÇÂ
¡ÒÃÃкØÃÒÂÅÐàÍÕ´ÊÓËÃѺ floating point áÅÐstring
chip
µÃСÙŢͧ Motolora
1.68000
ÁÕ 16 32-bit register â´Âá¡à»ç¹ data áÅÐ address registers 1 address register
äÇéÊÓËÃѺ stack pointer áÅÐ data registers ÊÒÁÒöãªéÊÓËÃѺ¡Òà operation
µèÒ§ æ «Öè§»ÃСͺ仴éÇ ¡ÒÃâµéµÍº¨Ò¡ address register áµèäÁèàËÁ×͹¡ÒÃãªé¢éÍÁÙŨҡ
address àͧ ¡Òà operation º¹ address register ¶Ù¡¨Ó¡Ñ´ã¹¡Òà move , add
/ subtract ËÃ×Í load ¨Ò¡ address 68000 ÁÕ 32 bits units ÀÒÂã¹ ·Óä´éÃÇ´àÃçÇ
ÊÒÁÒöá¡áÂÐ forced segmentation ¶Ù¡Í͡ẺÊÓËÃѺ¢ÂÒ »ÃСͺ仴éÇ ¡ÒÃÃкØÃÒÂÅÐàÍÕ´ÊÓËÃѺ
floating point áÅÐ string operations àËÁ×͹¡Ñº CPU â´Â·ÑèÇä»ã¹àÇÅÒà´ÕÂǡѹ
68000 ÊÒÁÒö fetch ¤ÓÊÑè§¶Ñ´ä» ã¹¢³Ð·Õè·Ó¡Òà execution ( 2 stage pipeline
)
2.68010
ÃÇÁà¢éÒä»ã¹ virtual memory support áÅÐ special loop mode ( small decrement-and-branch
loopsÊÒÁÒö executed ¨Ò¡ instruction fetch buffer . )
3.68020
( 1984 ) ¢ÂÒ external data áÅÐ address bus à»ç¹ 32 bits áÅÐ ÃÇÁ 256 byte
cache ã¹¢³Ð·Õè 68030 ¹Ó MMU äÇ麹 chip Êèǹ
4.68040
( 1991 ) ÃÇÁà¢éÒã¹ fully cache Harvard busses â´ÂÁÒ¨Ò¡ data áÅÐ instructions
6 stage pipeline áÅк¹ chip FPU
5.68060
(1994) ¢ÂÒ¡ÒÃÍ͡Ẻà»ç¹ superscalar version àËÁ×͹ Intel pentium áÅÐ NS320xx
(Swordfish) series ·Õèà¡Ô´¢Ö鹡è͹àËÁ×͹ NX586 ,AMD K5 áÅÐ "Intel Pentium
PRO" stage ·Õè 3 ¢Í§ 10-stage ã¹ 68060 pipeline á»Å§¤ÓÊÑè§ 680x0 ä» decode
RISC áÅÐãªé resource renaming 㹡Òà reorder ¤ÓÊÑè§ áÅÐÂѧÁÕ Branch cache
áÅÐ branch ·ÕèÃÇÁ ã¹ decoded instruction stream àËÁ×͹ AT&T Hobbit
áÅÐÍ×è¹ æ ÁÒ¡¡ÇèÒ ¡Òà Processor ·Õè¼èÒ¹æÁÒ
¹Í¡¨Ò¡¹Õéã¹
68060 Âѧ»ÃСͺ仴éÇ ¡ÒÃà»ÅÕè¹á»Å§ Power-saving ÁÒ¡ÁÒ·ÕèáÊ´§ãËéàËç¹
´Ñ§¹Ñé¹ Power ·ÕèãªéÁÕÃдѺµèÓ¡ÇèÒ 68040 ¡ÒÃà»ÅÕè¹á»Å§ Í×è¹ æ ¤×Í simple
register-register instruction «Öè§äÁèä´é à¡Ô´¨Ò¡ address ãªé address stage
ALU 㹡Òà execute 2 cycle ¡è͹
IBM
RS/6000 POWER CHIP ( 1990 )
àÁ×èÍ IBM
µÑ´ÊÔ¹ã¨à¢éÒÃèÇÁã¹µÅÒ´ work station ( ËÅѧ¨Ò¡äÁè»ÃÐʺ¤ÇÒÁÊÓàÃ稡Ѻ PC/RT
«Öè§à»ç¹¾×é¹°Ò¹º¹ ROMP processor ) ä´éÍ͡Ẻ CPU ãËÁè «Öè§ÁÕ¾×é¹°Ò¹ã¹Êèǹ¢Í§â¤Ã§¡ÒÃ
801 «Öè§à»ç¹¼ÙéºØ¡àºÔ¡ ·ÄÉ®Õ RISC «Öè§ RISC à»ç¹¾×é¹°Ò¹¸ÃÃÁ´ÒÊÓËÃѺ¡ÒÃÅ´ªØ´¤ÓÊÑè§
( Reduced Instruction Set Computer ) áµè IBM àÃÕ¡ÇèÒ Reduced Instruction
Set Cycles áÅÐÊè§àÊÃÔÁ¡Ãкǹ¡Ò÷Õè«Ñº«é͹¢Í§ processor ¡Ñº high level instruction
ÁÒ¡¡ÇèÒ CISE processor ·Ñé§ËÁ´ áÅÐÊÔé¹ÊØ´â´Â¨Ðä´é CPU ( power 1 ) ·Õè㹵͹àÃÔèÁµé¹
»ÃСͺ仴éÇ 5 ËÃ×Í 7 Êèǹ ¤×Í
1. branch
unit
2. point
unit
3. floating
point unit
4. ¨Ðà»ç¹
2. ËÃ×Í 4. cache chips ( â´Âá¡à»ç¹ data áÅÐ instruction cache )
ºÒ§ POWER
PC Version ( ä´éÃѺ¡ÒþѲ¹ÒÃèÇÁ¡Ñ¹ÃÐËÇèÒ§ IBM Apple áÅÐ MOTOROLA ´éÇ MOTOROLA
68000 áÅÐ Intel 8086 ) ÁÕ¡ÒÃÃÇÁ cache º¹ chip ( 32 k ã¹ 601 ) version ãËÁè
ÁÕ¡ÒÃáºè§á¡ I/D caches. POWER PC Version ÂѧÃÇÁ¤ÓÊÑè§§èÒ æ ( simplified
instruction set ) ÃÇÁ¡Ñº¤ÓÊÑè§à¡èÒ æ ·Õè¨Óà»ç¹
Êèǹ¢Í§
branch unit à»ç¹ËÑÇ㨢ͧ CPU áÅÐ enables multiple instruction 㹡Òà executed
1 ¤ÃÑé§ »ÃСͺ仴éÇÂà§×è͹ä¢ÃËÑÊ register , loop register áÅÐ performs
branches ã¹ code condition register ÁÕ 8 Êèǹ ( â´Âã¹ POWER 1. ʧǹ 2.
äÇéÊÓËÃѺ fixed áÅÐ floating point units, áÅÐÍÕ¡ 6 Êèǹ ÊÒÁÒöà»ç¹Êèǹ
( ËÃ×ÍÃÇÁ¨Ò¡ËÅÒÂ æ ¤ÓÊÑè§äÇéä´é ) áÅÐÊÒÁÒöµÃǨÊͺËÅÒ æ¤ÓÊÑè§ áÅÐÂѧà»ç¹µÑÇÊè§
multiple instructions (ÍÍ¡¨Ò¡¡ÒèѴ¡Òà ¶éÒà»ç¹ä»ä´é ) à¾×èͤÇÒÁàËÁÒÐÊÁ
ã¹Êèǹ¢Í§ executing ¤ÓÊÑè§«Ö觫Ѻ«é͹ ( complex instruction )
ã¹Êèǹ¢Í§
branch unit ÊÒÁÒö¤Ò´à´Ò㹡ÒÃá¡Ê觤ÓÊÑè§áÅР¡àÅÔ¡ä´é ¶éÒäÁèÊÒÁÒöá¡à»ç¹Êèǹ
æ ä´é branch unit Âѧ¨Ñ´¡ÒáѺ procedure â´Â¡Òà call áÅÐ returns º¹ program
counter stack µÒÁ zero-cycles calls àÁ×èÍÁÕ¡Òëé͹·Ñº¡Ñ¹¡Ñº¤ÓÊÑè§Í×è¹ áÅÐÊØ´·éÒÂÂѧ¨Ñ´¡ÒáѺ
interrupt â´Â»ÃÒȨҡ¡ÒÃà¢éÒá·Ã¡¢Í§ software
The integer
unit à»ç¹¡ÒáÓ˹´ÃٻẺ¡Òà operation ¢Í§ integer áÅÐ load áÅÐ stores ã¹
POWER1 áÅÐ POWER PC 601 ( version ãËÁè ÂѧÃÇÁÊèǹ·Õèà»ç¹ concurrent ã¹Ë¹èÇ¡ÒÃ
load/store ) ·Ø¡ version »ÃСͺ仴éÇ register 32 bit ã¹¢³Ð·Õè POWER PC
620 áÅÐ AS register à»ç¹ 64 bits high end POWER PC-AS ÁըشÁØè§ËÁÒÂÊÓËÃѺ
AS/400 minicomputer series ÂѧÃÇÁ¶Ö§¡ÒÃÁÕ¤ÓÊÑè§àÅ¢¤³Ôµ°Ò¹Ê? ;º áÅÐ ¤ÓÊÑè§à¡ÕèÂǡѺµÑÇÍÑ¡ÉÃ
áÅСÒÃàª×èÍÁµè͡ѹÊÓËÃѺ matrix coprocessor ˹èǵÑÇàÅ¢·Ñé§ËÁ´ÊÒÁÒöÊè§¼ÅÅѾ&c
edil;ìµèÍä»àÁ×èÍ subsequent instructions µéͧ¡Òà ¡è͹·Õè¨ÐÁÕ¡ÒÃà¢Õ¹ʶҹÐà¡Ô´¢Öé¹áÅк&Ogra
ve;§ version Âѧ»ÃСͺ仴éÇ register ¾ÔàÈÉ «Öè§¶Ù¡ rename ÊÓËÃѺ¡ÒäҴà´ÒËÃ×ÍÍÍ¡¨Ò¡¡ÒèѴ¤Ó&Ecir
c;Ñè§ execution 㹡ÒâѴ¢ÇÒ§¡ÒÃà¢Õ¹ áÅзÓãËéÁѹ§èÒÂ㹡Ò÷Ô駤ӵͺÊÓËÃѺ
ËÂØ´¤ÓÊÑè§ã¹¡Òà reorder ¡ÒûзРã¹Ë¹èÇ¢ͧ branch/dispatch ÁÕÃèͧÃÍ¡ÒÃ
rename register ¢Í§ integer áÅÐ floating point
ã¹Ë¹èÇ¢ͧ
floating point Âѧ»ÃСͺ仴éÇ thirty two 64 bit register áÅСÓ˹´ª¹Ô´¢Í§
floating point operations »ÃСͺ仴éǤÓÊÑè§ multiply/accumulate áÅÐ array
multiply áÅСÒúǡ register ¶Ù¡ load áÅÐ store «Öè§¡Ó˹´¨Ø´·È¹ÔÂÁã¹ POWER1
áÅÐ POWER PC601 â´Â˹èÇ¢ͧ¡Òà load/store Í×è¹ æ FPU Âѧ»ÃСͺ仴éÇ rename
register àËÁ×͹ºÒ§ CPU Í×è¹ æ floating point trap ÂѧäÁèªÑ´à¨¹ á¹è¹Í¹ à¾ÃÒÐÇèÒ
pipelining-normally. Traps bit à»ç¹ set ¢Í§¡ÒÃÂÍÁÃѺàÅ¢·È¹ÔÂÁ áÅÐ software
ÊÒÁÒöµÃǨÊͺà§×è͹ä¢ã¹¡ÒáÓ˹´ trap ä´é ËÃ×ͨзӡÒÃÂØµÔä´é¶éÒÁÕ software-operation
ÊÓËÃѺ¡Òà debugging ÂѧÃÇÁ slower precise trap mode à¢éÒä»ÍÕ¡
Data bus
ÁÕÃÐÂШҡ 32 bit à»ç¹ 256 bit «Öè§ÊÒÁÒöà¾ÔèÁà»ç¹¤ÓÊÑè§ 6 ¤ÓÊÑè§ áÅÐ 4
¡Òà load ËÃ×Í store ã¹àÇÅÒà´ÕÂǡѹ â´Â POWER PC 601 ãªé MOTOROLA 88000
microprocessor bus ÁÒ¡¡ÇèÒ version 㹻Ѩ¨ØºÑ¹«Öè§ãªé POWER PC â´Â¡Ó˹´
bus â´Â੾ÒÐ ºÒ§·Õ¡çãªé¡Ñº 128 bit ‘ back side ‘ bus ãªé㹡ÒÃà¢éÒ¶Ö§ L2.cache
IBM POWER
CPU ·Ñé§ËÁ´ÁÕ»ÃÐÊÔ·¸ÔÀÒ¾ ·ÓãËé¤Ô´¶Ö§¡ÒÃÍ͡Ẻ mainframe «Ö觤سÊÁºÑµÔ·Ñé§ËÁ´àËÁ×͹¡Ñº
" weird and Innovative " áÅÐÂѧãªé RISC ´éÇ ÁÕ¤ÇÒÁI«Ñº«é͹ÊÙ§ ·ÓãËéÁÕ»ÃÐÊÔ·¸ÔÀÒ¾
áµèµéͧ¡Ó˹´ clock rate ¢Í§¡ÒÃÍ͡Ẻ·Õèá¹è¹Í¹
clock rate
ÊÙ§ æ ä´éÃѺ¡ÒþѲ¹Ò¨Ò¡ Exponential Technology ·Ó¡ÒâÂÒª¹Ô´¢Í§à·¤â¹âÅÂÕ
Intel ¾º¶Ö§¤ÇÒÁ¨Óà»ç¹ã¹¡ÒÃà¡çº Pentium áÅÐ Pentium Pro CPU äÇéãªé㹡ÒÃá¢è§¢Ñ¹
áÅÐ Embedded version Âѧä´éÃѺ¡ÒÃá¹Ð¹Ó¨Ò¡ IBM áÅÐ MOTOROLO
DEC
Alpha ¡ÒÃÍ͡ẺÊÓËÃѺ͹Ҥµ (1992)
ʶһѵ¡ÃÃÁ¢Í§
DEC Alpha ä´éÃѺ¡ÒÃÍ͡ẺµÒÁ DEC ÊÓËÃѺ¡ÒôÓà¹Ô¹ªÕÇÔµã¹ÃÐÂÐàÇÅÒ 25 »Õ ¼Ùéà»ÅÕè¹á»Å§ËÅÑ¡¤×Í
PAL calls ( ËÃ×Í set ¤ÓÊÑè§ writable ·Õèá¹è¹Í¹ ) áµèÂѧä´éÃѺ¡ÒüÊÁ¼ÊÒ¹¢Í§ÅѡɳÐà´è¹
㹡ÒÃÃǺÃÇÁ·Õèá¹è¹Í¹¢Í§ ¤Ø³ÊÁºÑµÔ·ÕèäÁèÁÕ¢éÍ¡Ó˹´·ÕèªÑ´à¨¹ chip ¢Í§ Alpha
µÑÇáá¤×Í 21064 Alpha ¤×Í Ê¶Ò»ÑµÂ¡ÃÃÁ 64 bit ( ÁÕ 32 bit à»ç¹ instruction
) äÁèʹѺʹع 8- ËÃ×Í 16-bit ¢Í§¡ÒôÓà¹Ô¹¡Òà áµèµéͧµÒÁ¡ÒÃà»ÅÕè¹á»Å§ ´Ñ§¹Ñ鹨֧äÁèÁÕ
function ·ÕèÊÙËÒ Alpha 32 bit ¡ÒôÓà¹Ô¹¡ÒÃᵡµèÒ§¨Ò¡ 64 bit à¾Õ§á¡è¡Òûéͧ¡Ñ¹
overflow Alpha äÁèÊÒÁÒö·Ó¤ÓÊÑè§ËÒÃä´é ¹Í¡¨Ò¡¹ÕéÂѧÁդسÊÁºÑµÔàËÁ×͹ MIPS
R2000 «Öè§»ÃСͺ仴éÇ¡ÒÃãªé register ·ÑèÇä» ã¹¡ÒáÓ˹´ÃËÑÊà§×èÍ¹ä¢ ÍÂèÒ§äáçµÒÁ
Alpha ÂѧÁÕ¡Òà interlocked pipeline ´Ñ§¹Ñ鹨֧äÁèÁÕ register ¾ÔàÈÉÊÓËÃѺ¡ÒÃ
¤Ù³ / ËÒà áÅÐ Alpha ÂѧËÁÒ¶֧¡ÒÃËÅÕ¡àÅÕè§ÊÑÅѡɳì¡ÒÃ& agrave;µÔºâµã¹Êèǹ·Õè«Ñº«é͹
«Öè§µÃСÙÅ R2000 ·´ÅͧáÅоѲ¹Òà»ç¹ R8000 áÅÐ R10000 ¡®¢Í§ Alpha ãªé㹡ÒÃÂéÒÂʶһѵ¡ÃÃÁ
DEC’s two prior â´Â MIPS à»ç¹¾×é¹°Ò¹º¹à¤Ã×èͧ workstation áÅÐ VAX minicomputer
㹡Ò÷ÓẺ¹Ñé¹ chip ÊÒÁÒö¨Ñ´à»ç¹·Ñé§ IEEE áÅÐ VAX32 áÅÐ 64 bit floating
point operation áÅÐÅѡɳÐà´è¹¢Í§ Privileged Architecture Library ( PAL)
àÃÕ¡ set ¢Í§ programmable ( äÁèÁÕ interruptable ) à¢Õ¹㹪ش¤ÓÊÑè§ã¹ Alpha
â´Â·ÑèÇä»ã¹ programmable ÁÕÃËÑÊ¢¹Ò´àÅ硢ͧ western Digital MCP-1600 ËÃ×Í
AMD Am 2910 CPUs à»ç¹¡ÒÃà»ÅÕè¹á»Å§§èÒÂ æ ¨Ò¡ªØ´¤ÓÊÑè§Í×è¹ æ â´Âãªébinary
translator ( ¡ÒÃá»Å§áººäº¹ÒÃÕ ) â´ÂʹѺʹع operating system ·ÕèËÅÒ¡ËÅÒÂ
Alpha Âѧä´éÃѺ¡ÒÃÍ͡Ẻà¾×èÍ͹Ò&curr en;µÊÓËÃѺ 1000-fold à¾×èÍà¾ÔèÁ㹤سÊÁºÑµÔà¾ÃÒÐÇèÒ¹Õè&
curren;×Í ªØ´¤ÓÊÑè§ superscalar ä´éÃѺ¡Òà reorder áÅÐ trap à§×èÍ¹ä¢ ·Õèà»ç¹ä»ä´éãËéªÑ´à¨¹
¤ÓÊÑè§¾ÔàÈÉ·ÕèàËÁÒÐÊÁ㹡Òà syncronise ·Õèà¡Ô´¢Öé¹àÁ×è͵éͧ¡Òà áÅÐäÁèÁÕ
branch delay slot àËÁ×͹㹠R2000 µÑé§áµè·Ó¡ÒüÅÔµÃÒ¡ÒûÑËÒµèÒ§ æ ã¹ superscalar
execution áÅÐ »ÑËÒ·Õè compatibility ¡Ñº extended pipeline á·¹·Õè¨Ð speculative
executive áÅÐ branch cache chip 21064 ä´éÃѺ¡ÒÃá¹Ð¹ÓÃèÇÁ¡Ñº 1. integer
2. Floating point áÅÐ 1 load / store unit 21164 ( ¡è͹»Õ 1995 ) ÃÇÁ 1.
integer / load / store unit ¡Ñº ¤ÓÊÑè§ byte vector áÅÐ 1. Floating point
unit áÅÐ à¾ÔèÁ clock speed ¨Ò¡ 200 MHz à»ç¹ 300 MHz áÅÐä´éÃѺ¡ÒÃá¹Ð¹Ó¤ÇÒÁ¤Ô´·Õèà»ç¹
1. level 2. Cache º¹ chip 21264 ¢ÂÒÂà»ç¹ 4 integer unit , 2 different floating
point unit ¡Ñº¤ÇÒÁÊÒÁÒö㹡Òà load 4 ,dispatch 6 áÅÐ retire eight instruction
µèÍ cycle ÊÒÁÒöà¾ÔèÁä´é