Share to: share facebook share twitter share wa share telegram print page

 

슈퍼스칼라

슈퍼스칼라(superscalar)는 CPU 내에 파이프라인을 여러 개 두어 명령어를 동시에 실행하는 기술이다. ILP를 최대한 적용하여 실행하면 CPU 처리 속도가 빨라진다. 파이프라인이 하나라면 클럭당 하나의 명령어만 완료할 수 있었다 (다시 말해 IPC가 1이다). 이 값을 높이려면 파이프라인을 여러 개 두어 명령어를 동시에 실행시켜야 한다. 파이프라인이 2개라면 이상적으론 클럭마다 최대 2 개의 명령어를 처리할 수 있어 IPC=2가 된다. 보통 슈퍼스칼라 프로세서는 동시에 처리(투입/완료)가 가능한 명령어 개수에 따라 N-이슈, N-와이드(wide), N-웨이(way) 슈퍼스칼라라고 표현한다. 이상적으로는 N개의 명령어를 읽어 파이프 라인에 넣을 수 있지만(fetch), 실제로는 명령어 캐시의 제약, 명령어 사이의 의존성, 분기문 때문에 N개보다 작은 명령어만 넣을 수 있을 때가 일반적이다.

명령어 사이에 데이터 의존성, 자원 의존성, 프로시저 의존성이 존재하는 경우에는 동시실행에 제한이 있다.

데이터 의존성

ADD와 DIV 두 가지 명령어를 사용하여 데이터 의존성을 설명해보자.

  • ADD R1, R2, R3 : R2와 R3를 더해서 R1에 저장한다.
  • DIV R4, R1, R5 : R1을 R5로 나누어서 R4에 저장한다.

다음과 같은 값이 주어질 때

R1 = 8
R2 = 1
R3 = 3
R5 = 2

두 명령어를 순차적으로 실행하면 다음과 같으며

R1 = 4
R4 = 2

실행 순서를 바꿔 실행하면 다음과 같이

R1 = 4
R4 = 4

R4에 잘못된 결과가 저장된다.

첫 번째 명령어에 의해 값이 정해지는 데이터를 두 번째 명령어에서 읽게 되는 경우에는 두 명령어의 실행 순서가 변경되어서는 안 되며, 이것을 'READ AFTER WRITE 의존성'이라고 한다.

같이 보기

Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9