110
-1- 최종연구보고서 MPP Reduced Instruction Set 구조 연구 Computer 연구수행기관 전남대학교 : 한국전자통신연구소

Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 1 -

최 종 연 구 보 고 서

용MPP Reduced Instruction Set

구조 연구Computer

연구수행기관 전남대학교:

한 국 전 자 통 신 연 구 소

Page 2: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 2 -

제 출 문

한국전자통신연구소장 귀하

본 보고서를 용 구조 연구의 최종 연구 보고서로 제출합니다MPP RISC .

년 월 일1994 5 31

수 행 기 관 :

연구 책임자 :

연구 보조원 :

전남대학교

김 영 민

박 주 현

조 진 호

공 종 필

Page 3: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 3 -

요 약 문

제목1.

용 구조 연구MPP RISC

연구의 목적 및 중요성2.

가 연구의 목적.

국내의 컴퓨터 기술 및 산업 추세를 보면 그 동안 제조 산업이 주류를 이룸으로 해서PC

총체적인 기술력을 필요로 하는 이 분야에 대한 연구 검토가 부진했던 것이 사실이다 선진.

각 국에서는 이미 년대에 이 분야를 개척하기 시작했으며 벌써 상용화되고 있는 실정이70 ,

다 더군다나 고속 고집적 기술과 고성능 지능화 컴퓨터 기술뿐 아니라 아직 초보 단. VLSI

계인 병렬 처리용 소프트웨어 개발 등을 고려해 볼 때 우리의 개발 환경은 열악하다고 볼

수 있다 그리고 외국업체와 합작을 통한 기술 습득도 가능하나 산업 표준 부품용 소프트웨.

어를 사용하지 않을 경우 기술 종속의 우려도 낳고 있다 그러나 최근 들어 국책 사업으로.

정부의 집중적인 투자가 이루어지고 있고 각 분야에서 폭넓은 기술 개발이 진행중이며 혁, ,

신적인 병렬 처리 시스템의 개발과 이외 응용에 대한 연구는 이 분야에 대한 더 포괄적인

이해로 고성능 컴퓨터의 향후 구조적 경향을 파악해서국내 컴퓨터 산업이 발전될 수 있도록

적극적인 투자와 관심이 필요하다.

나 연구의 중요성.

시장의 급속한 확장에 의해 에서 사용되던 기술들이 혹은 기존의 마PC WS RISC PC CISC

이크로프로세서들에 적용되고 있다 에서도 웨이 슈퍼스칼라 파이프라인을. Intel Pentium 2-

사용하여 칩을 개발하였다 전체 개인용 시스템 시장은 앞으로도 지속적으로 성장할 것이며. ,

컴퓨터 산업구조 변화는 소형화 개방화 시스템 병렬처리 및 멀(downsizing), (open system),

티미디어 기술을 축으로 발전할 것이 예상된다.

Page 4: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 4 -

이와 같은 최근의 컴퓨터 하드웨어 기술 전망을 살펴보더라도 년에는 구2000 RISC, CISC

조 모두 이상의 성능을 가질 것으로 예상되며 중대형 시스템들이 모두 양산 상2000MIPS ,

용 프로세서를 채용할 것으로 예상된다 또한 상용 마이크로 프로세서의 고성능 저가화와.

함께 프로세서 단위의 대단위 병렬성을 이용하는 공유 메모리형 다중 처리 시스템이 중 대,

형 시스템에서 자리를 잡아가고 있으며 앞으로 대단위 병렬처리시스템 으로 이행할, (MPP)

것이 확실시된다 따라서 세계적인 이런 추이를 따라가고 프로세서 기술의 일보 전진을 기. ,

하기 위해서는 를 응용한 기술 개발이 시급하다 할 수 있겠다RISC MPP .

연구 개발 내용 및 범위3.

연구 개발 내용 연구 개발 범위

자료 조사 획득 조사

기술 현황 연구RISC 조사

구조 제안RISC 개발

결과 보고서 작성 분석 종합

연구 결과4.

가 보고서명.

용 구조 연구MPP RISC

나 연구 보고서 목차.

서 론(1)

프로세서 개발 현황(2) RISC

특징(3) RISC

명령어 셀트(4)

프로세서 구조(5) RISC

결론(6)

Page 5: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 5 -

활용에 대한 건의5.

그 동안 순수 과학용으로만 병렬 처리 기술을 사용해 왔으나 마이크로 프로세서의 효율적인

연결 기술이 개발된다면 데이터 베이스나 온라인 처리 의사 결정 소프트웨어 등을 탑재하,

여 사용할 수 있을 것이다 또한 초저전력 소모를 특징으로 하는 프로세서. Deep Low-End

들은 휴대용 종합 정보 통신 가전 기구에 사용되어(Computer, Commuication & Consumer)

마이크로 프로세서 구조에 새로운 방향을 제시할 것이다 그리고 병렬처리 시스템 개발이.

쉽지만은 않기 때문에 사용자 환경을 개선 보완하여 효율적인 병렬 처리 시스템의 운용 기,

술을 확보하여 더 용이한 사용자 환경을 구축할 필요가 있다.

기대 효과6.

본 연구를 바탕으로 현재 마이크로 프로세서의 구조를 개선하고 초미세화된 반도체, VLSI

구현을 통하여 프로세서 개발이 이루어질 수 있으며 고속 고집적 저전력 가격대 성능이, , , ,

우수한 프로세서 개발의 기초 자료가 될 수 있다.

또한 처리 속도 증대를 위해 형태를 도입하고 병렬 처리와 다중처리 기법vector data type ,

를 통해 다양한 이행성을 제공받는다면 슈퍼컴퓨터부터 에 광범위하게 응용될 것이다W/S .

따라서 이 기술의 연구 개발은 충분한 시장성이 있으며 지금과 같은 발전 속도로 보면, , 1

년 후에는 기술을 통한 설계가 대다수를 이룰 것이다0 l5 RISC MPP .~

Page 6: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 6 -

SUMMARY

As PC market is rapidly growing, RISC (Reduced Instruction Set Computer)technology,

the major processing engine is adopted in workstations, is being applied to PCs

replacing the CISC (Complex Instruction Set Computer) microprocessors. Also,

computer technologies towards downsizing, open system architecture, parallel

processing, and multimedia, will dominate the computer industry structure at the

beginning of year 2000. It has been just about ten years since the ideas of RISC

first started getting widespread attention. Since t1len, many RISC and RISC-like

architecture have been prosed and almost as many have been introduced. And their

vendors are busy solidifying positions in the markets where they have found

success.

Therefore, we propose a 64-bit load/store RISC architecture designed with particular

emphasis on speed enhancement, dual issue, branch prediction, extensive pipelining, and

direct-mapping virtual addressing. In the processor, instructions interact with each other

only through one instruction writing to a register or to a memory location, then through

another instruction reading from that register or from the memory location. This

processor also contains four independent execution units such as the integer execution

unit, the address generation, load/store interface unit, the floating-point unit, and the

branch unit. The processor also contains on-chip instruction and data caches for fast

instruction and data access.

Finally, we hope this report will contribute to a development of RISC processors for our

country.

Page 7: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 7 -

목 차

제출문

요약문

제 장 서 론1

제 장 프로세서 개발 현황2 RISC

제 절 스팍1 (SPARC)

제 절2 PA-RISC

제 절 파워3 PC

제 절4 Alpha

제 절 펜티엄5

제 장 의 특징3 CN-RISC

제 장 명령어 셑트4

제 절 명령어 포맷l

제 절 명령어 기술2

제 장 프로세서5 CN-RISC

제 절 데이터패스와 제어1

제 절 파이프라인2

제 절 캐쉬3

제 절 분기4

제 절 부동 소수점 데이터패스5

제 장 결론6

참고문헌

Page 8: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 8 -

제 장 서 론1

반도체 기술의 급격한 발전으로 마이크로프로세서를 이용하여 슈퍼미니급의 컴퓨터를 개발

하는 것이 가능하게 되었다 따라서 프로세서 칩 개발 노력이 증대되었으나 컴퓨터 구조 또.

는 프로세서 구조에 관한 연구도 여러 곳에서 진행되고 있다 최근에 새로운 프로세서 구조.

의 개발을 통해 컴퓨터 시장에서 선두를 달리고 있는 기업은 미국의 경우 모타롤라, HP,

등이다Sun, Standford, Digital .

우리 나라의 경우 독자적인 명령어를 가지는 컴퓨터를 개발하겠다는 노력은 아직 부족하며,

논문으로 발표된 것도 전무한 상태이다 우리 나라가 다른 나라의 시스템과 차별성을 갖는.

독자적인 명령어와 구조를 갖는다는 것은 국가적으로 중요한 일이라고 할 수 있다 물론 외.

국 기업과 저작권의 문제가 걸리지 않도록 최대한 독창적인 구조를 개발하는 것이 중요하

다 우선 가장 중요한 것은 최대한 개발 기간을 짧게 하여 제품의 차별성을 갖추어야 한다.

는 것이다 형태의 프로세서는 구조뿐만 아니라 반도체로의 구현 과정이 복잡하여 개. CISC

발 기간이 길어지므로 비교적 짧은 형태의 프로세서를 개발하는 깃이 유리할 것이다, RISC .

본 보고서는 여러 구조를 분석 검토하여 독창적인 구조를 연구하는 기초 자료RISC , RISC

이다 참고한 프로세서는 알파 펜티움 파워 등이다 특히 캐쉬나 분기. RISC , , PC, PA-RISC .

예측 부분에 대한 연구가 집중되었으며 비트 프로세서 설계의 기초 자료가 될 수 있다, 64 .

명령이 또한 구조에 맞는 명령어를 제안하고 있으며 부동 소수점과 정수형 모두에RISC ,

대한 연산이 가능하다 프로세서 이름은. CN-RISC(ChonNam Reduced Instruction Set

이며 에 응용될 수 있는 연산소자Computer) , MPP(Massively Parallel Processor)

로 쓰일 수 있다 특히 여러 개의 프로세서를 묶어서 계산 능력을 증(Processing Element) .

가시키겠다는 병렬 컴퓨터에 쓰이는 연산 소자는 간단한 구조이면서도 빠른 특성을 가져야

한다 따라서 여기에 잘 맞도록 의 장점을 살려 명령어를 주로 사용한 단. RISC Load/Store

순한 명령어군을 제안하고 있다.

Page 9: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 9 -

제 장 프로세서 개발 현황2 RISC

라는 용어는 버클리 대학의 프로젝트로부터RISC(Reduced Instruction Set Computer) RISC

유행하기 시작하였으나 그 근원은 의 프로젝트에 두고 있다 명령어를 빠르게 수행IBM 801 .

하도록 하고 자주 사용되지 않는 명령어는 과감하게 삭제함으로써 칩 내부를 매우 단순화하

여 전체적으로 시스템의 기능을 개선한 것이다.

를 실제로 구현하는 경우에 나타나는 몇 가지의 특징을 살펴볼 수 있다 첫째 한 사이RISC .

클에 한 명령어를 수행하기 때문에 기존의 프로세서에 비교해서 수배의 성능 개선 효과를

갖게 된다 이와 같은 효과를 거두기 위해서는 파이프라인을 설계하여야 하며 하드와이어드. ,

로직을 사용하여 단순화된 어드레싱 모드만을 지원 받게 된다 따라서 고급언어의 컴파일러.

는 명령어가 단순하기 때문에 처리해야 할 부담이 늘어나게 되어 등으Optimizing Compiler

로 기능을 강화시켜야 한다.

년대 초부터 버클리 및 스탠포드 등의 대학 연구실에서 활발히 진행되던 연구는 산80 RISC

업체에서도 그 중요성을 인식하여 사의 사의 사Intergraph Clipper, AMD AM29000, MIPS

의 등으로 상용화되었다 또한 최근에는 시스템 제조업체에서 자체적인 구조를 개발R2000 .

하는 추세를 보이고 있다 사는 기존의 을 새로운. Hewlett Packard HP3000 PA(Precision

로 대체하였고 사도 이라는 구조를 갖는 시스템을 사용하고Architecture) , Sun SPARC Sun4

있다.

그러나 아직도 구조의 컴퓨터는 인텔사의 계열의 개인용 컴퓨터에 비해서 방RISC 80X86

대한 시장에 뿌리를 내리고 있지 못하다 물론 계열 구조로 널리 알려진PC . RISC

등이 주로 워크스테이션IBM-POWER, SUN-SPARC, HP-PA, SGI-MIPS, DEC-ALPHA

기종에 주로 적용되어 대상 고객도 기술 및 공학도에게 주로 그 기반을 두고 있고 극히 근, ,

래에 들어와 다운사이징의 바람을 타고 상용시장에 까지 폭넓게 사용되기 시작한 점은 있으

나 아직도 사용자의 수적인 면에서는 인텔사의 프로세서에 바탕을 둔 에 비해서, 80X86 PC

매우 열세에 몰려 있는 형편이다 그러나 가격 대비 성능을 앞세운 전략을 바탕으로 시. PC

장을 끊임없이 넘보고 있으며 최첨단 등의 기술을 바탕으로 슈퍼 컴퓨터 화상 처리, CMOS , ,

음성 고용량 데이터 베이스 고성능 통신 등에서 그 성능의 활용이 기대되는, , CAD/CAM,

바 끊임없는 연구가 이루어지고 있다, .

Page 10: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 10 -

또한 시스템의 공개성을 바탕으로 폭넓은 응용 소프트웨어를 산출할 수 있는 바탕을 만들어

내고 있으며 세기에 들어 비트와 마찬가지로 비트 구조도 완전히 새로운 유형의 비, 21 32 64

즈니스를 탄생시킬 것이다.

이 장에서는 현재 상용화되었거나 사용화 준비중인 여러 칩들에 대한 간단한 설명과RISC

구조적인 가장 큰 특징들에 대해서 설명한다 여기 설명한 프로세서 말고도 일본이나 유럽.

등에서도 많은 연구가 이루어지고 있으나 여기 설명하는 프로세서들이 거의 대부분의 RISC

특징들을 가지고 있기 때문에 대표적인 프로세서들만 설명한다.

Page 11: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 11 -

제 절 스팍1 (SPARC)

스팍 은 칩 하나로 워크스테이션의 성능을 제공할(SPARC: Scalable Processor ARCitecture)

만큼 간단하면서도 강력한 성능을 발휘하는 구조이다RISC .

현재 가장 광범위한 사용자층을 확보하고 있는 스팍 구조는 년 연구를 기초로1980 ‘RISC ’

이루어졌다 년 썬 에서 스팍스테이션 을 발표하기전까지 스팍 기술은 주로 고성. 1989 (SUN) 1

능 서버 및 엔지니어링 워크스테이션에 사용되었다 그러다 저렴한 가격의 스팍 구조를 기.

반으로 한 워크스테이션들이 발표되면서 사용자들도 워크스테이션을 사용할 수 있는 기PC

회의 폭이 넓어지게 되었다.

스팍은 다른 구조와는 차별적인 독특한 특징을 가지고 있다RISC .

첫째 스팍 기술은 개방되어 있다 썬 이외에도 여러 다른 회사로부터 스팍의 핵심기술을 구, .

할 수 있으며 여러 반도체 및 시스템 업체들이 스팍 제품을 설계할 수 있다, .

스팍 구조가 개방되어 있기 때문에 시스템 개발 업체들은 다양한 스팍 소프트웨어 하드웨,

어 기술을 이용하여 호환성 있는 시스템을 개발할 수 있다.

둘째 스팍 구조는 반도체 기술 스팍 칩 개발 및 시스템 구성 등에서 확장성이 있다 스팍, , .

을 장착한 랩탑 컴퓨터 데스크탑 컴퓨터 고성능 멀티프로세서 시스템 및 슈퍼컴퓨터에서, ,

동일한 소프트웨어 응용이 가능하다 또한 반도체 업체들은 등. CMOS, BiCMOS, ECL, GaAs

각종 기술을 이용한 스팍 칩의 디자인이 가능하다.

년부터 현재까지 스팍 구조를 기반으로 한 시스템 솔루션들은 다른 구조와 비교해 다양1987

하게 개발되어 왔다 예를 들어 하위기종 분야에서는 달러 이하의 스팍클래식이 발표된. 5,000

바 있고 상위기종 분야에서는 기가플롭 성능을 제공하는 스팍 미니슈퍼 컴퓨터, 400MIPS, 6

가 발표되었다.

셋째 스팍을 장착한 컴퓨터 시스템이 대량 출하되고 있다 년 처음 발표된 이래 년, . 1987 1990

말까지 썬은 만대 이상의 스팍 시스템을 출하하였으며 년 현재 총 만 대로 집16 , 1992 64 7,000

계되고 있다.

기술적인 특징1.

Page 12: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 12 -

스팍은 기본적인 프로세싱을 수행하는 정수 단위와 부동 소수점 연산을 수행하는 단위로 이

루어져 있다 각 구조는 칩 하나에 통합되기도 하고 별도로 구현되기도 한다. , .

스팍 구조는 별도의 메모리 관리 장치 를 지정하지 않고 있다 한 가지프로세서가 여(MMU) .

러 가지 상이한 시스템에서 사용될 수 있기 때문이다.

레지스터 윈도우1.1

스팍의 고성능을 뒷받침하는 요소가 중첩 레지스터 윈도우(over lapping register windows)

이다 대부분의 구조가 개의 정수 레지스터를 가지고 있는 것과는 달리 스팍은 최. RISC 32

고 개의 레지스터를 사용할 수 있다 명령이 실행되면 실행 과정에서 사용될 새512 . ‘SAVE’

로운 윈도우가 할당되고 명령을 실행시키면 이전의 윈도우는 앞서 실행된 과정, ‘RESTORE’

을 복구하는데 사용된다 이처럼 윈도우가 겹쳐짐으로써 처리 속도가 빨라진다 레지스터 윈. .

도우는 로컬 캐쉬로도 사용된다.

시스템은 하드웨어적으로 구현된 명령이 수가 시스템에서 보다 적기 때문에 컴RISC CISC

파일러는 더욱 중요한 역할을 한다 시스템은 보다 많은 기능이 소프트웨어적으로 수. RISC

행되어야 한다 따라서 컴파일러는 소프트웨어 명령어 수와 순서를 최적화함으로써 프로그.

램 실행 속도에 크게 영향을 끼친다.

고정된 길이의 명령어 대형 레지스터 집합 레지스터 윈도우등 스팍의 특징은 첨단 컴파일, ,

러 기술에 의해 효과적으로 지원한다.

슈퍼 스케일러1.2

프로세서는 클럭 사이클당 한 개의 명령을 실행하고 있으며 차세대 프로세서는RISC , RISC

클럭 사이클당 한 개 이상의 명령을 실행할 것으로 보인다 이러한 클럭 사이클당 여러 개.

의 명령어를 실행하는 것을 슈퍼 스케일러라고 한다 또한 이 방법은 부동 소수점 연산 성‘ ’ .

능이 우수하다.

Page 13: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 13 -

1.3 MBus

스팍 는 썬이 캐쉬 제어기 등을 연결하기 위해 설계한 멀티칩 모듈MBus IU, FPU, MMU,

인터페이스이다 의 사양은 공개되어 있으며 스팍 는 를 이용하여 다층 캐. MBus , CPU MBus

쉬를 포함하고 있는 플러그인 모듈에 장착할 수 있다 프로토콜은 프로세서가 자체. MBus

내부 캐쉬나 차 캐쉬를 가질 수 있도록 해준다 모든 캐쉬 관련 논리는 프로토콜 및2 . MBus

관련 마이크로프로세서에 설계되어 있으므로 를 기반으로 한 마이크로프로세서 장착MBus

멀티프로세서 시스템의 설계는 간단하다.

1.4 CPU

스팍 는 마이크로스팍 슈퍼스팍 울트라스팍 등 가지 계열 가지 종류가 있다 이 가CPU , , 3 9 .

운데 마이크로스팍과 슈퍼스팍 등 가지 계열은 이미 썬의 반도체 협력업체 가운데 하나인2

에 의해 대량 출하되고 있다 세 번째 계열인 울트라스팍은 썬의 첫 비트 스팍 이TI . 64 CPU

다.

의 발전에 크게 영향을 미치는 요인으로 해당 프로세서를 사용하고 개량하는 등의 작CPU

업에 참여하고 있는 설계팀의 수가 있다.

현재 나와 있는 대부분의 및 구조들은 특정 업체의 전용 구조로 개발되어 있어RISC CISC

서 기술 혁신에 제한을 받아 왔다 그러나 썬은 기술 공개를 통해 지속적 발전을 도모하고.

있다.

스팍의 가장 큰 차별화 특징은 바로 이 개방형 구조를 지향하고 있다는 것이다 따라서 많.

은 업체들이 스팍 구조에 독특한 부가가치를 창출할 수 있다.

개방 전략에서 얻을 수 있는 또 다른 장점은 유연성 확장성 및 신속한 제품 출(flexibility),

하 등이 확보된다는 것이다(time-to-market) .

Page 14: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 14 -

제 절2 PA-RISC

프로세서 칩은 의부의 비트 폭의 명령 캐쉬와 외부 비트 폭의 데이터 캐쉬에 직접 연결64 64

된다 이들 캐쉬는 바로 맵 처리되며 업계 표준 고속 으로 구성되어 프로세서 주파. , SRAM

수대에 따라 주기가 돌아간다 에서 각각의 캐쉬는 의 기 대역폭을. 100MHz 800MB/sec S1 ,

의 쓰기 대역폭을 가지고 있다 이프로세서 칩은 에서 크기의 캐쉬와400MB/sec . 4K 2MB D

에서 사이의 캐쉬를 지원한다 캐쉬 번지는 작게 분할되어 캐쉬 부재율을 줄이도록4K 1MB l .

되어 있다 양쪽의 캐쉬는 패리티에 의해 보호되며 캐쉬 에러는 하드웨어로 정정할 수 있. , I

다.

온칩 캐쉬 대신 오프칩 캐쉬를 사용했기 때문에 많은 장점을 가지고 있다 첫째 매우 크게.

만들 수 있기 때문에 다양한 응용에 대해 성능을 고르게 제공할 수 있다 차의 캐쉬가 필. 2

요 없기 때문에 생산비용이 절감된다 마지막으로 프로세서는 가변의 주파수 동기식 버스에.

의해 메모리와 에 연결된다 따라서 이 프로세서는 기존의 개 메모리 제어는 물론 앞I/O . 3 ,

으로 나올 메모리 제어기 설계도 함께 할 수 있다.

기술적인 특징1.

기술은 년에 연구팀이 결성되어 개발하기 시작했고 년 처음으로 프로세PA-RISC 1982 , 1986

서를 탑재한 시스템을 발표하였다.

의 일반적인 특성은 비트 명령어이며 비트 정수 레지스터를 가지고 있다 또PA-RISC 32 , 32 .

한 비트 부동 소수점 레지스터를 가지고 있다 가상 번지 방법을 쓰고 있으며 그래픽32/64 . ,

명령어를 지원한다.

의 를 으로 부르고 있는데 여기에서 은 번째 세대를 의미하며 은HP PA-RISC PA 7100 , 7 7 ,100

를 지원하는 프로세서라는 것을 의미한다l00MHz .

가 단일 로 와 부동 소수점 코프로세서 기능을 하나의 칩에 장착PA7100 PA-RISC CPU CPU

하고 슈퍼 스칼라 명령실행 파이프라인을 채택하고 있으며 채널 길이를 미크론으로, , FET 0.8

줄이면서도 클럭 속도를 이상으로 높인 점이다100 .㎒

Page 15: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 15 -

1.1 CPU

프로세서 칩은 개의 블럭으로 되어 있다 이들은 정수 데이터 패스 캐쉬 제어 데이터패스6 . , ,

부동 소수점 데이터패스 인터페이스 회로 제어 장치 등이다, , TLB, .

정수 데이터패스는 분기 덧셈기 조건 평가회로 결과 바이ALU, SML(Shift Merge Unit), , ,

패스 회로 범용 레지스터 파일 구조화된 제어 레지스터 번지 파이프라인 레지스터 등이, , ,

포함되어 있다.

캐쉬 제어 데이터패스는 캐쉬 와 캐쉬의 일관성을 점검하기 위한 레지스터들이miss/flushes

포함되어 있다 또 번지 세그먼트 레지스터 버퍼 하드웨어 등이 들어 있. , TLB , TLB handler

다 부동 소수점 데이터패스에는 부동 소수점 곱셈기 나눗셈 제곱근 회로 레지스터. , ALU, . ,

파일 결과 파이패스 회로 등이 있다, .

인터페이스 회로에는 캐쉬와 캐쉬의 인터페이스에 필요한 모든 회로와 메모리 버스가 들I D

어 있다 이들 회로에는 주문 설계된 고속의 드라이버와 리시버 외에 레지스터 버퍼링. pad

및 파이프라인이 포함되어 있다.

에는 개의 크기를 변환할 수 있는 엔트리 의에 크기가 고정되어 완전히 결합된TLB 16 TLB

개의 엔트리가 있다120 TLB .

제어장치는 실제로 여러개 회로블럭으로 나누어지며 표준 셀 논리 커스텀 논리 등이, PAL. ,

있다.

나눗셈 제곱근 회로는 알고리즘을 사용하지만 의 성능을 얻기 위해/ STR radix-4 radix16 2X

프로세서 클럭 주파수대에서 실행한다 는 덧셈 뺄셈 포맷 변환 등을 수행한다. FALU , , .

레지스터 파일은 개의 비트 레지스터를 가지고 있다28 64 .

명령 실행1.2

정수 파이프라인은 개 단계로 구성된다 즉 캐쉬 읽기 오퍼랜드 읽기 실행 캐쉬 읽기6 . , I , , /D ,

캐쉬 읽기 완료 레지스터 쓰기 캐쉬 쓰기 등이다 단계는 파이프라인의 명령 인출D , , D . IR

부분이다.

이 중 명령을 발행할 수 있으려면 슈퍼 스칼라 실행이 효력이 없을 때 단계보다 회 사IR 2

이클 앞서 명령이 인출되도록 해주는 소형의 예비 인출 버퍼 가 필요하다(prefetch buffer) .

Page 16: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 16 -

오퍼랜드 읽기 단계에서는 모든 실행 장치가 오퍼랜드를 해독하고 그 결과를 계산한다 데.

이터 캐쉬 읽기 단계에서는 정수 실행장치가 계산을 끝내게 된다.

파이프라인은 온칩 캐쉬 을 읽는데 허용된 시간을 최대화할 수 있도록 설계되었다SRAM .

그럼으로써 주어진 속도를 위한 프로세서 주파수를 최대로 높일 수 있다SRAM . ALL

명령은 회의 사이클 내에 처리되며 사이클 회의 데이터 캐쉬 대역폭을 필요로 할LOAD 1 , 1

뿐이다 명령과 데이터 캐쉬는 별개의 버스 상에서 접속되기 때문에 데이터 캐쉬 접속과 명.

령 인출간의 혼선으로 인한 파이프라인 손해는 없다.

이 프로세서는 같은 사이클내에서 하나의 정수 명령과 부동 소수점 명령을 처리할 수 있다.

명령어 캐쉬는 사이클당 두 개 명령을 연속 실행할 수 있는 대역폭을 갖고 있다 같이 실행.

되는 한 쌍의 명령에 대해서는 조정 작업이나 주문 제한조건이 필요치 않다 또 한 쌍의 명.

령을 실행했다가 하나의 명령을 실행하는 것으로 변환해도 이로 인한 손해 사이클은 없다.

이중 명령을 발행함으로써 프로세서 주파수가 제한을 받지 않도록만 주의하면 된다 이를.

위해 명령어 캐쉬내에 미리 해독된 비트를 포함시켜 명령을 성수와 부동 소수점 장치쪽으로

향하도록 만들었다 미리 해독된 비트를 사용하면 명령을 적절히 방향 짓는데 필요한 암호.

해독량을 최소로 줄일 수 있다 데이터와 제어는 파이프라인에 종속됨에 따라 생기는 손해.

는 최소한의 것이다 명령은 뒤이은 명령이 로드 목적 레지스터를 사용해야 할 때를. LOAD

빼놓고는 회 사이클로 실행할 수 있다 대부분의 경우에는 컴파일러로 이 같은 사이클 회1 . 1

의 손해를 피할 수 있다 브랜치 패널티를 줄이기 위해 이 프로세서는 분기 예측 알고리즘.

을 사용한다 루프를 위한 성능을 최적화 하는데 있어 포워드 분기는 으로 예측되고. taken ,

백워드 분기는 으로 예측된다 정확히 예측된 분기는 회의 사이클 내에 실행된다untaken . 1 .

단어 및 배 단어 에 필요한 데이터 캐쉬 사이클 수를 회 사이클에서 회 사이클2 STORE 3 2

로 줄였다 종전의 프로세서에서는 캐쉬 적중을 보장하고 기존의 캐쉬 데이터와 현재 저장. ,

되고 있는 데이터를 합치기 위해 캐쉬 태그를 읽는데 별도의 사이클이 필요했다.

Page 17: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 17 -

그러나 이 프로세서는 별도의 태그 번지 버스를 사용해 캐쉬 태그 읽기와 앞서 일어난 저장

명령의 데이터 쓰기를 중복시켰다.

또 별도의 쓰기를 통해 데이터 캐쉬의 단어 각각에 부호를 줌으로써 기존의 캐쉬 데이터와

단어 및 배 단어 저장 명령을 위한 새로운 캐쉬 데이터를 합칠 필요가 없어졌다 이 알고2 .

리즘에는 저장 명령이 캐쉬를 이용하고 트랩이 아님이 결정된 후 저장 명령이 일어나도록

하기 위해 쓰기가 필요하다SRAM .

나눗셈과 제곱근을 제외한 모든 부동 소수점 연산은 완전히 파이프라인화 되어 있다.

이 프로세서는 회의 정수 명령과 회의 부동 소수점 명령을 병렬로 처리할 수 있다 여기1 1 .

서 정수 명령에는 부동 소수 레지스터의 로드 저장 명령이 포함되며 부동 소수 명령에는, ,

명령이 포함된다 이들 명령은 곱셈과 병렬로 실행되는 독립된FMPYADD, FMPYSUB .

연산을 결합시키는 것이다ALU .

부동 소수 연산에서 로드 사용에 따른 손해는 로드나 이 함께 발행되지 않고 연이어 일flop

어날 경우에는 사이클 회 동시에 발행되면 사이클 회가 된다 의 결과를 이용할 경우1 , 2 . flop

병렬로 처리되더라도 저장 명령에 따른 손해는 없다.

멀티프로세싱1.3

이 프로세서는 두 종류의 멀티프로세서구성으로 작동하도록 설계되어 있다 첫 번째 구성은.

각각의 프로세서를 메인 메모리 버스상의 모든 트랜잭션에 관여하는 하나의 인터페이스 칩

에 연결하는 것이다 그와 같은 시스템에서 인터페이스 칩은 프로세서에 트랜잭션을 발생시.

킴으로써 캐쉬의 일관성을 유지하게 된다 라이트백 데이터 캐쉬의. 'private', 'dirty', 'valid'

상태에 있는 각각의 캐쉬 라인은 프로세서에 의해 발행되고 수신된 트랜잭션에 따라 수정된

다.

이 프로세서에 의한 멀티프로세서 구성의 두 번째 형태는 똑같은 로칼 메모리버스에 메모리

제어로서 연결된 두 개의 프로세서로 이루어진다 이와 같은 구성에서는 인터페이스 칩I/O .

이 필요 없고 기존의 메모리 시스템과 호환된다 캐쉬의 일관성은 로칼 메모리 버스를 통해, .

유지된다 캐쉬 대 캐쉬 라인 전송은 메모리 제어기의 지원이나 간섭없이 이뤄진다 이. I/O .

구성 방식은 저렴한 비용으로 고성능의 멀티 프로세서 시스템을 제공한다.

Page 18: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 18 -

다른 설계와 관련해 큰 장점은 효율적인 고속회로와 패키지 설계에 의해 생산비가 저RISC

렴한 기술로 고속의 클럭 주파수가 가능했다 그리고 대형의 높은 대역폭의 외부CMOS . ,

캐쉬 메모리를 사용해 소형 온칩 캐쉬 또는 종속관계의 캐쉬들과 연관된 고질적인 성능의

병목현상을 없앴다 특히 효율적인 명령 파이프라인을 구현해 인터락을 줄이고 클럭 사이. , ,

클 당 두 개의 명령을 처리할 수 있게 했다 또 캐쉬와 부재 손해를 최소화하기 위해. TLB

여러 가지 특성을 채용했다 고도의 주파수 낮은 대기 시간 파이프라인화도니 부동 소수. , ,

장치 슈퍼 스칼라실행 등으로 부동 소수 성능을 대폭 향상시켰다 또한 명령이다 사이클 수, .

를 줄이기 위한 패키징 기술을 활용해 앞으로 이루어질 한층 발전된 성능 실현에 대비하였

다.

Page 19: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 19 -

제 절 파워3 PC

이 프로세서는 뛰어난 설계 기술을 적용한 프로세서라고 할 수 있다RISC .

파이프라인 설계 개념을 도입하여 명령어 수행 단계를 세분화하고 이를 통해서 동시에 개, 1

이상의 명령어가 수행되도록 하였다 즉 개의 개별적인 파이프라인을 병렬로 갖추고 있으. , 3

며 상호 파이프라인간에는 독립적인 명령어 수행구조를 가지고 있어서 동시에 최대 개까, 8

지의 개별적인 명령어를 실행할 수 있다 한편 병렬 구조의 수행성을 높이기 위해 데이터. ,

처리에 있어서 레지스터들과 내장 캐쉬를 손쉽게 접근할 수 있도록 설계되었다.

명령어 처리는 캐쉬와 명령어 순서를 효율적으로 이용하여 연속적으로 이루어지도록 설계되

었다.

또한 연합 업체에서는 파워 를 가지고 가 전적으로 워크스테IBM/APPLE/Motorola PC RISC

이션 관련 기술이라고 하는 통념을 깨려고 하고 있다.

궁극적으로 가 작동할 수 있도록 되어 있는 이 파워는Macintosh, WINDOWS, OS/2, UNIX

기술이 데스크탑 시스템으로서 책상 위에 올라가도록 보편화시키는데 있어서 가장 강RISC

력한 제품이 될 것이다.

기술적인 특징1.

파워 는 데스크탑을 넘어서서 기존의 를 이용해 왔던 워크스테이션 세계뿐만 아니라PC RISC

메인프레임 분야에까지 커다란 영향을 미칠 것이다.

파워는 에서 사용된 의RS/6000 IBM POWER(Performance Optimized With Enhanced Risc)

구조에 근간을 두고 있다 이 비트 구조는 순차적인 명령어들을 가져다가 매 클럭사이클. 64

마다 몇 개의 명령어를 다른 단위 처리 장치들로 분배해주는 슈퍼 스칼라 구조를 최대한,

이용하기 위해서 설계되었다 단위 처리 장치는 부동 소수점 처리와 같은 특정 기능만 수행.

하면서 처리 장치 내에서 다른 부분들과는 독립적으로 작용하는 프로세서의 한 부분이다.

파워는 세 개의 수행처리 장치로 구성되어 있고 이에 따라서 동시에 개의 명령어를 수행, 3

할 수 있다.

Page 20: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 20 -

이 파워구조는 디코딩을 단순화시켜서 시스템의 효율을 향상시키기 위해 고정길이의 명령어

를 사용하고 있다 이는 또한 다양한 종류의 비트 처리용 명령어를 가지고 있고 임의의 일. ,

련의 데이터를 호출 또는 저장하는 명령어들을 가지고 있다 이 뒷부분의 기능으로 인해, .

이 구조는 빠른 에뮬레이션 성능을 제공한다 이 비트 필드 오퍼레이터는 에뮬레이터 프로.

그램으로 하여금 신속하게 외부의 명령어를 분해하게 하고 비정렬 엑세스 기능은 에뮬레이

터의 코드 할당 관리를 피해간다.

마지막으로 배정도 부동 소수점 형태의 정보는 가장 잘 지원하는 데이터 형태이며 이 프로,

세서가 직접적으로 지원한다 이는 부동 소수점 계산은 하드웨어 자체로 하드웨어의 속도로.

계산된다는 것을 의미한다.

분기 단위의 동시 수행 구조1.1

분기 장치는 개의 파이프라인중 하나이지만 논리적으로는 명령어 장치 일부분으로 작동한3

다.

주된 업무는 분기 명령어에 의해서 야기되는 지연 시간을 막는 것이다 즉 프로그램 논리에. ,

의해서 분기 명령어가 수행되고 이에 따라서 캐쉬로부터 선호출 될 명령어들의 기본 주소,

가 변경이 요구될 경우에도 명령어 큐에 계속 명령어가 공급되도록 한다.

분기 장치는 해결이 안된 전제분기를 미리 예측하는 기능을 가지고 있다 예를 들어 명령어. ,

큐에 개의 정수 연산 명령어와 개의 전제분기 명령어가 있고 세 번째 정수 연산 명령어3 1 ,

의 결과가 분기 명령어를 수행시키는 전제로써 사용되는 프로그램의 논리를 예를 들어 가장

하자 이럴 경우 다음 클럭에서 첫 번째 정수연산 명령어는 정수 처리 장치에 할당되고 분. , ,

기 명령어는 분기 장치에 할당이 된다.

파워 파이프라인 구조1.2

정수 연산 장치는 정수 비트 필드 그리고 로드 저장 명령어를 처리하며 또한 실수에 대한, , / ,

로드 저장 업무도 수행한다 삼단계의 파이프라인으로 구성되어 있으나 단계로 확장할 수/ . , 4

있다 정수 장치에서 해석작업이 수행될 때 명령어와 이 명령어가 처리할 연산 대상 등을.

밝히고 다음에는 명령어를 처리 장치로 보낸다, .

Page 21: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 21 -

처리 장치가 비어 있지 않으면 정수 버퍼로 보내서 처리 장치가 비게 될 때까지 대기시킨

다 특히 이 버퍼는 수 개의 머신 사이클을 필요로 하는 정수 명령어가 수행 중일 경우에는. ,

명령어큐가 정지 상태가 되는 것을 막아주는 기능도 아울러 갖추고 있다 정수 처리 명령어.

의 수행이 끝나면 정수 명령어는 그 결과 값을 레지스터 파일에 기록하는 라이트백 상태로

이동한다.

로드 저장 명령어는 특별하게 취급되어서 유효 번지가 기억 장치 관리 단위에 의해서 해석/ /

계산되고 곧 이어지는 정수 명령어들이 지체없이 수행되어야만 완료된 것으로 보내진다, .

이 캐쉬의 데이터는 캐쉬 접속에 소요되는 개 사이클의 지연 시간 후에 레지스터 파일로1

되돌려진다.

만약 데이터가 캐쉬에 없을 겨우 유효 번지는 두 개의 구성 요소로 만들어진 기억 장치 관

리 단위의 읽기 버퍼로 보내지고 읽기 버퍼에는 이를 근거로 주기억장치의 데이터를 캐쉬,

로 읽어들인다 이 데이터는 다시 레지스터 파일에 쓰여지고 다음의 로드 명령어가 캐쉬를. ,

접속하면서 계속 수행하게 한다.

저장 연산은 수행 단계에서 계산된 유효 번지에 근거하여 레지스터 파일로부터 캐쉬로 데이

터를 옮긴다 캐쉬에 데이터가 저장되지 않은 경우에는 데이터는 메모리 단위의 개의 쓰기. 3

버퍼 중에 하나에서 대기하게 된다 정수 연산 장치는 곱셈기 나누기 예의 레지스터. ALU, , , ,

개의 범용 레지스터로 이루어져 있다 레지스터 파일은 두 개의 라이트백 버스를 가지고32 .

있어서 두 개의 연산이 하나의 클럭 사이클에 동시에 레지스터 파일을 접속할 수 있다 레.

지스터 파일은 또한 파이프라인의 일시적인 정지를 예방하는 포워딩 기능을 갖추고 있다.

부동 소수점 연산 장치는 완벽하게 파이프라인 구조를 갖추고 있어서 단일 정밀도의 곱셈기

어레이 배정밀도의 가산기 어레이 나누기 실수 레지스터 파일로 구성되어 있다, , , .

부동 소수점 연산 장치는 단계의 파이프라인으로 구성되어 있다 명령어큐로부터 명령어가5 .

부동 소수점 연산 장치로 할당되면 부동 소수점 명령어는 한 사이클 동안 버퍼에서 대기하

여야 한다.

정수 연산 버퍼와 달리 다음 단계가 공석이라 하더라도 자동으로 하강되지는 않는다.

Page 22: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 22 -

모든 부동 소수점 인산 명령어는 디코드 될 때 최소한 한 개 사이클을 소비하고 두 개의,

실행에서도 각각 한 개씩의 사이클을 사용한다 정수 장치와 달리 부동 소수점 장치는 포워.

딩 기능이 없다 이전 명령어에 연관 관계를 가지고 있는 다음 명령어는 이전의 명령어가.

라이트백 업무를 끝낼 때까지 기다려야만 한다.

명령어 셑트는 초월함수를 직접 지원하는 기능은 가지고 있지 않지만 부동 소수점의 구조

는 테일러 시리즈의 전개를 고속화하여 초월함수의 연산을 지원하는 기능을 가지고 있다.

메모리 장치1.3

명령어 처리 장치와 세 개의 파이프라인이 프로그램을 수행하는 동안 파워의 나머지 부분,

들은 데이터와 명령어를 처리 장치와 외부 메모리 사이에서 바쁘게 교환시키고 있다 특히. ,

명령어 처리와 데이터 접속이 동시에 일어나는 곳은 바로 캐쉬이다.

파워는 로 매우 큰 캐쉬를 가지고 있다 따라서 파이프라인 처리 장치에 데이터와 명32KB .

령어를 효율적으로 공급하여 처리 장치를 완전 가동시킬 수 있다.

다른 하나는 통합 캐쉬라는 점이다 대부분의 프로세서들은 하나의 사이클에 명령어 호출과, .

데이터 접속을 동시에 수행할 수 있도록 두 개의 개별적인 캐쉬를 가지고 있다 그러나 파.

워는 하나의 사이클에 명령이 호출과 데이터 접속을 동시에 수행할 수는 없다.

파워는 이것을 개선하기 위해서 캐쉬 접속시 버퍼링과 큐잉을 빈번히 수행하도록 한다 캐.

쉬는 제시도 큐도 가지고 있는데 이는 하나의 실수 접속 하나의 정수 접속 그리고 한 개, , ,

의 명령어를 버퍼링 하기 위해서 사용된다.

그리고 캐쉬에 장애가 발생하지 않고 계속적으로 외부 메모리 접속을 수행할 수 있도록 메

모리 장치의 읽기와 쓰기 버퍼를 또한 사용한다 개의 명령어를 저장할 수 있는 명령어큐. 8

도 실제로는 명령어 처리 장치로 명령어를 보내기 위해서이나 캐쉬의 쓰기 버퍼로 사용한

다 캐쉬 접속시 충돌이 발생하면 양자 사이를 중재하여 우선 순위가 높은 쪽을 먼저 접속.

하게 한다 우선 순위의 높고 낮음은 다음과 같이 매겨져 있다 실수 저. . RELOAD, SNOOP,

장 정수접속 명령어 호출순이다, , .

Page 23: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 23 -

캐쉬와 메모리는 프로세서 수행 중에 발생하는 논리적 번지를 외부 메모리에서 실제로 사용

하는 물리적 번지로 해석하는 의 연산 작업에 종속적으로 동작한다 는 의MMU . MMU 4GB

논리적 번지 공간을 제공하며 이는 각각 의 세그먼트로 분할되어 있다, 256MB .

는 의 페이지단위로 해석 메모리 페이징 업무를 수행할 수 있고 또한 에MMU 4KB , , , 128KB

서 까지의 다양한 크기의 블록에 대해서 블럭 번지 업무를 수행할 수 있다8MB .

Page 24: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 24 -

제 절4 Alpha

구조는 고성능 컴퓨터 시스템을 위한 기초를 이루고 있다 거의 년에 걸친Alpha . 10 RISC

구조의 연구 기술을 바탕으로 는 고성능을 강조한다 속도는 로 동작하며 이Alpha . 200MHz ,

러한 속도는 현재 산업계에서 고속을 지향하는 마이크로프로세서 스팩에 잘 부합한다 할 수

있다.

비트 구조와 처음으로 구현된 칩 마이크로프로세서는 사64- Alpha A)(P DEC 21064 Digital

에서 수년에 걸쳐 연구가 되었다 그 목표는 미래에 다양한 응용을 할 수 있는 고성능의 컴.

퓨터군을 개발해 내는 것이라 할 수 있다 반도체 기술의 발달과 함께 컴퓨터 구조 하드웨. ,

어 디자인 동작 시스템 컴파일러 응용 소프트웨어의 발달로 이와 같은 노력은 결실을 볼, , ,

수 있었다 이 시스템은 개인용 컴퓨터에서 워크스테이션 슈퍼컴퓨터까지를 그 영역으로. ,

하고 있다 지원 가능한 동작 시스템은. OpenVMS, full 64-bit UNix(DEC OSF/l),

등이다Microsoft WindowsNT, native Novell NetWare .

구조는 비트 번지와 데이터 전송 성능을 가지고 있으며 구조를 가지고Alpha AXP 64 , RISC

있다 구조 연구의 시작은 년 중반으로 거슬러 올라간다. AXP 1980 .

년에 에 대해서 미래에 성능이 증가된 새로운 구조가 필요할 것이라는 문제 제기1988 VAX

가 되면서 연구에 박차를 가하기 시작한다 구조는 다중 명령어 이슈 다중 프. Alpha AXP ,

로세서 동작 시스템의 독립성과 같은 어드레싱 특성에 있어 전의 프로세서보다 월등한 성,

능을 가지고 있다 는 폭넓게 축적된 컴퓨터 구조에 대한 연구 하드웨어 디자. Alpha AXP ,

인 시스템과 응용 소프트웨어 기술을 바탕으로 하고 있다 또한 이 구조는 구조와 구현 면, .

에서 큰 유용성 을 제공하고 있다(flexibility) .

현대 컴퓨터 구조가 성공적이기 위해서는 강력한 반도체 디자인과 기술을 바탕으로 해야 한

다 는 프로세서로 디자인되었는데 크기를 가지고 있으며 레벨. 21064 CMOS-4 , 0.75 , 3㎛

과 볼트 전력 공급을 가지고 있다aluminum interconnection 3.3 .

Page 25: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 25 -

새로운 급의 시스템에서는 엄청난 양의 소프트웨어 개발을 전제로 하고 있다 옛 버전과 호.

환성을 유지하는 것도 새로운 구조를 개발하는데 큰 이점을 유지하는 한 관건이라 할 수 있

다 일반적으로 소프트웨어 작업은 하드웨어 작업보다 더 많은 시간이 걸린다 그래서 소프. .

트웨어 개발 노력을 줄이고 지원하기 위한 하드웨어 개발 노력이 진행중이다 버, . CMOS-4

전의 칩 전에 더 작은 캐쉬와 부동소수점 하드웨어를 지원하지 않는 을 생산했었CMOS-3

다.

기술적인 특징1.

구조1.l Alpha

아마도 의 큰 특징은 컴퓨터 디자인을 하는데 있어 발생하는 다양한 문제를 빠른 시Alpha

일 내에 해결할 수 있는 데에 있을 것이다 분할된 번지 공간 대신에 더 큰 비트 선형. 64

밴지 공간을 제공하고 있다 다른 컴퓨터 제조자들이 비트 확장 계획을 가지고는 있으나. 64

아직 까진 비트 하드웨어를 제공하는 곳은 뿐이다 또한 이 구조는 기존의64 Alpha AXP .

비트 소프트웨어와 호환성을 가지고 있으며 비트 확장 버전보다 명령어 실행상의 문제32 , 32

점을 덜 야기시킨다고 할 수 있다.

에서 모든 블럭은 비트 전송량을 가지고 동작한다 또한 다중 이슈 구현을Alpha AXP 64 .

제공하기 위해 조건 코드나 특별한 레지스터 압축 명령어 분기 지연 명령어, side effects, ,

따위를 되도록 피한다 이러한 특징이 단일 페취와 이슈 프로세서에는 적당하나 다중 이슈.

디자인을 복잡하게 만들고 종종 성능상의 병목현상을 야기시킬 수 있다, .

또한 이 구조는 사이클 시간을 억제함으로 해서 발생될 수 있는 성능상의 제한특성 때문에

직접적인 하드웨어 지원을 되도록 피한다 대신에 충분한 기능성을 갖는 소프트웨어를 사용.

해서 구조를 충족시키는 방향으로 설계를 지원한다 그 예로 명령. direct-byte load/store

어와 예외적인 정확한 연산을 되도록 줄인다.

Page 26: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 26 -

이상적인 쉬프트와 다중화기 패스는 사이클 시간을 강제할 수 있는 로드에 필수적이byte

다 게다가 바이트 저장 동작은 보호 구조를 가지고 있는 시. ECC(Error Correction Code)

스템 내 시퀀스를 필요로 한다 이러한 구조를 갖는 바이트 저장read-modify-write . ECC

은 캐쉬 디자인을 느리게 하고 복잡하게 만들 수 있다 최근의 경험을 통해 볼write-back , .

때 바이트 지향 코드는 비트 바이트 데이터 폭을 사용하고 바이트 조정 지원 명령어가64 (8 ) ,

제공되었을 때 더 빠른 동작을 보임을 알 수 있다.

지원 루틴과 같은 바이트 동작이 필요할 때 첫 설계자들은 번지 비트I/O Alpha AXP PC

에 크기를 인코딩 하거나 낮은 레벨 드라이버 코드를 바꾸지 않고 Mocrosoft Windows NT

포트에 바이트 조정 코드를 캡슐화함으로써 성공할 수 있었다 사실 바이트 조정 캡슐OS .

은 하이 레벨 언어를 사용해서 명령어를 입출력하는 인텔 에 필수적인 동작 캡슐과X86 I/O

유사하다.

구조는 전통적인 구조를 가지고 있다 즉 모든 데이터는 계산Alpha AXP RISC load/store .

없이 메모리와 레지스터 사이를 이동한다 단지 범용 레지스터를 사이에 데이터 전송이 있.

을 때 계산이 될 뿐이다.

의 독립1.2 OS

다중 동작 시스템 포트를 지원하기 위해 라고 부르는 특정 소프트웨어 서브루틴이PALcode

특정 에서 낮은 레벨의 하드웨어 관련 작업을 할 수 있도록 한다 인터럽트OS . , exceptions,

메모리 조정 에러 조정 따위가 내 엔트리를 제어한다 따라서context switching, , PALcode .

하드웨어든 든 잘못된 인터페이스 접속에 구속되지 않으며 그 구조 또한 특정 계산을OS e ,

위해 스타일이 영향 받지 않는다 게다가 는 실제 주 메모리나 메모리 맵 장. PALcode I/O

치 레지스터에 접속을 조정할 수 있기 때문에 사용자는 실시간이나 안정 계산 등의 특정 목

적 환경에 맞게 코드를 조절할 수 있다.

Page 27: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 27 -

어드레싱1.3

가상 번지는 비트 폭을 가지고 있다 는 으로 인텔64 . AXT little-endian byte addressing X86

과 컴퓨터와 비슷하다 시스템은 바이트 조정 명령어를 가지고VAX . big/little-endian data

에 접속할 수 있다 사실 시스템과 소프트웨어 구현은 번지 폭에 의존하. big/little-endian

고 있는데 최소 비트의 가상 번지수를 가지고 있으며 앞으로 호환성을 가지고서 비트43 , 64

까지 확장이 가능할 것이다 는 페이지당 매핑을 하며 각 페이지. AXT virtual-to-physical ,

는 이다8Kbytes .

데이터 형1.4

이 구조가 비트 길이의 데이터도 지원을 하지만 데이터의 기본 단위는 비트이다 부동32 64 .

소수점 데이터 형은 비트 싱글과 비트 더블 포맷을 가지고 있는 와 포맷을32 64 VAX IEEE

모두 포함한다 확장 부동소수점 포맷은 포함하고 있지 않으나 그 기능 부분을 보전함으로.

써 확장 가능성에 대처하고 있다 비트 데이터형은 직접 명령어. Byte/word(16 ) load/store

가 아닌 이 지원하고 있다 이와 같은 경우는 정상적인 연short sequences of instructions .

산이나 바이트 조건명령어를 사용해서 레지스터내에서 조정된다.

듀얼 이슈1.5 (dual issue)

듀얼 이슈 성능은 또한 사이클 시간의 영향을 막아 준다 동작은 코. load-and-store RISC

드를 주로 점하고 있기 때문에 동작 명령어를 가지고 수행할 수 있도록 번지를 구분할 수

있도록 한다 표 은 듀얼 이슈에 대한 일반 명령어의 쌍을 보여준다 여기에는 두 가지의. 1 .

예외가 있다 하나는 분기 명령어는 레지스터 파일 포트를 공유하기 때문에 같은 포맷을 가.

진 저장 명령과 함께 듀얼 이슈할 수 없다 또한 저장 명령이나 분기 명령은 명령어 버스를.

공유하고 있기 때문에 다른 포맷을 가진 동작 명령어와 듀얼 이슈할 수 없다 예를 들어 정.

수형 저장명령어는 부동 소수점 형 동작과 듀얼 이슈할 수 없다.

Page 28: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 28 -

제 절 펜티엄5

인텔은 년 초 해가 가기 전에 을 이을 다음 세대의 계열 를 내놓겠다고 발l992 486 X86 CPU

표하였다 이때 가 공식 발표되기 전으로 그것이 펜티엄이라 이름 지어지기 전까지. 486DX2

인텔 내부의 프로젝트 코드명 로 불리면서 무성한 소문이 나돌 때이다 그러나 어떤 이유P5 .

에서인지 인텔은 당초의 발표 일정을 거듭 연기하면서 해를 넘긴 올해 월에야 펜티엄을 공3

식 발표하였다 이렇게 어렵게 탄생된 펜티엄이 전세계 컴퓨터 사용자의 구미를 어느 정도.

만족시킬 수 있을지 현재로선 미지수이지만 지금 이 시점에서 그 소문의 진가가 어느 정도

가치를 가진 것인지 간접적으로나마 분석해 볼 수 있다는 것은 다행스러운 일이다.

펜티엄은 인텔의 계열 마이크로프로세서 중 가장 강력한 최신의 프로세서이다 이것은X86 .

반도체 기술의 발전에 따른 성능의 향상을 가지고 왔을 뿐 아니라 기존의 계열의 프로X86

세서들과 코드 호환성을 유지함으로써 사용자의 소프트웨어에 대한 근심을 완전히100%

불식시키고 있다 이 펜티엄 프로세서는 기술로 만개의 트랜지스터를. 0.8 BiCMOS 310㎛

집적시켰는데 는 속도 기능은 공정을 그리고 집적도와 전력소모가 필요한, BiCMOS Bipolar

분야는 공정을 채택 혼합한 형태를 취하고 있다CMOS , .

기술적인 특징1.

대표적인 특징으로는 슈퍼스칼라 구조를 채택한 점이다 이것은 한 개의 프로세서 내부에.

두 개 이상의 파이프라인을 가짐으로써 개의 프로세서 클럭 사이클에 두 개 이상의 명령1

수행을 가능케 하는 구조이다 인텔은 이 구조를 펜티엄에 처음 채택함으르써 프로세서의.

성능 향상을 이룰 수 있었다.

다음으로 부동소수점 장치의 기능을 크게 향상시킨 점이다 이것은 인텔의 계열 프로세. X86

서의 모든 부동소수점 장치들이 다른 프로세서의 그것들과 비교 했을때 크게 성능이 떨어진

다는 지적을 반영한 결과로 보인다.

Page 29: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 29 -

설계를 할 때는 인텔의 코프로세서보다 웨이텍의 코프로세서가 보다 널리 쓰이던 적도X87

있었다 이러한 부동소수점에 대한 펜티엄의 개선은 실제로 두드러질 정도로 확연히 드러나.

다 인텔이 제시한 자료와 그외 여러 가지 시험 자료를 함께 비교해 볼 때 에서의 부동. 486

소수점 처리 능력보다 배 이상의 뛰어난 것으로 판단된다4 .

펜티엄은 또한 별도의 코드와 데이터 캐쉬 메모리를 씩 보유하고 있다 이것 역시8Kbytes .

코드와 데이터를 단일로 하여 를 가지고 있는 캐쉬에 비하면 그 성능을 훨씬 증8Kbytes 486

가시켰다 그뿐 아니라 캐쉬 라이트 방식도 이 방식인 데 반하여 펜티엄은. 486 write through

방식을 사용한다 이것은 라이트백 방식이 메모리 사이클에 대한 프로세서의 부write back .

하를 현격히 줄임으로써 성능 향상을 가져오는 강점을 살린 것이다.

네 번째로 펜티엄은 약 정도의 성능 향상을 기대할 수 있는 분기 예측 기능을 가지고25%

있다 보통의 프로세서가 명령을 수행할 때 특정한 조건이 만족되는지 점검을 할 때가 있는.

데 이러한 경우 점검의 결과에 따라 다음 수행해야 할 명령의 내용이 달라지는 것이 일반적

이다 바로 이런 경우를 분기라고 하며 일반적인 프로그램에서 분기를 해야 하는 경우가 평.

균 정도 나타나는 것이 일반적이다 이와 같은 분기를 미리 해석하고 예측하여 다10 30% .~

음 수행할 명령에 대한준비를 미리 끝내는 분기 예측 기능을 가지고 있다.

이외에도 펜티엄은 내부 비트 외부 비트의 데이터 버스 구조를 가지는데 이것이 성능256 , 64

향상에 어떠한 결과를 가져 올 것이라는 것은 손쉽게 예측할 수 있을 것이다 그것을 수치.

로 나타내 본다면 의 에서 초당 최대 의 전송속도를 가지던 버, 486 50MHz CPU 160MBytes

스가 펜티엄에 와서는 초당 최대 의 전송 속도를 가지는 버스로 바뀌게 된다528MBytes .

펜티엄의 기본 구조2.

펜티엄 프로세서는 형에서는 최초로 슈퍼스칼라 구조를 채용하였는데 이는 그림 의CISC 5

펜티엄 내부 구조에서 보여주고 있다.

Page 30: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 30 -

두 개의 파이프라인을 병렬로 작동시켜 정수 연산을 실행하는데 두 개의 파이프라인은 각각

파이프와 파이프라고 한다 파이프는 계에서 정의한 모든 명령을 실행할 수 있으U V . U 86

며 파이프는 와이어드 로직 제어로 실행할 수 있는 단순한 명령만을 처리한다V .

파이프와 파이프는 모두 단의 파이프라인으로 구성되어 있는데 각 파이프라인의 기U V 5

본적 구조는 과 변함이 없다i486 .

명령 해독은 과 같이 단으로 구성했으며 스테이지에서 명령의 해석과 해독을 실행i486 2 D1

하면 단계에서 연산수의 어드레스를 계산하는데 두 명령의 동시실행여부는 단계에서D2 Dl

판정한다 판정하는 조건으로는 두 명령 모두 와이어드 로직 제어로 실행이 가능해야 한다. .

둘째 두 명령이 연산수 사이에 의존 관계가 없어야 한다 셋째 두 명령의 연산수에 변위와.

즉시 데이터 모두를 포함하지 않아야 한다 넷째 파이프에 할당된 명령에 프리픽스가 붙. V

어 있지 않아야 한다 다섯째 분기 명령이 파이프에 할당되어 있어야 한다. V .

성능을 향상시키기 위해 의 파이프라인에도 변경한 부분이 있는데 예를 들면 연산수i486DX

의 주소를 계산하는 단계이다 에서는 클럭을 필요로 하는 주소 계산을 여기에D2 . i486 2 3~

서는 한 클릭으로 처리할 수 있다.

명령의 실행을 제어하는 마이크로 코드도 일부 변경했는데 두 명령을 동시에 실행할 수 없

으면 한 명령의 처리에 두 개의 실행 단위를 사용하도록 개선하였으며 명령 실행에 필요한

클럭 수도 줄였다.

단계에서는 비트 단의 쓰기 버퍼를 설치하였는데 이는 데이터의 작성시 캐쉬 오WB 32 X 1

류가 발생해도 쓰기 사이클의 완료를 기다리지 않고 다음 처리로 넘어갈 수 있도록 한 것이

다.

슈퍼스칼라 실행2.1

펜티엄은 두 개의 명령을 병렬로 실행되게 하는 슈퍼스칼라 구성을 하고 있다 와 단. PF Dl

계에서 는 두 개의 단순한 명령을 병렬로 패치하여 해독한 후 이 명령들을 와 파CPU U V

이프라인으로 보낼 수 있다 단계에서 는 복잡한 명령을 위해서 와 파이프라인. D1 CPU U V

을 둘다 통제하는 마이크로코드 순서를 생성할 수 있다 또한 동시에 실행할 수 있는 명령.

들간의 의존성을 해결키 위한 몇가지 기술을 사용하고 있다.

Page 31: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 31 -

레지스터 스택 조작2.2

부동소수점 명령 세트는 개의 레지스터 스택으로써 레지스터 파일을 사용하며 개의X86 8 , 8

스택 중 최상위 스택은 결과 누산기 역할을 한다 따라서 최상위 스택은 대부분의 명령에. ,

서 소스 피연산자 또는 목적지 레지스터로 사용한다 부동소수점 레지스터 파일을 가장 효.

과적으로 사용하므로써 부동소수점 파이프라인 성능을 향상시키기 위해서 펜티엄의 는, FPU

임의의 기본 부동소수점 연산과 병렬로 명령을 실행할 수 있다FXCH .

초월함수 명령2.3

펜티엄 는 마이크로코드 시퀀스의 직접 실행을 통해서 얻어지는 명령 세트 내에 정의CPU

되어 있는 총 개의 초월함수 명령을 지원한다8 .

다항식 근사법을 사용하여 초월함수에 대한 새로운 테이블식 알고리즘을 개발했다 이 알고.

리즘은 전통적인 알고리즘을 사용했던 구현 방식과 비교하여 성능과 정확도가Cordic i486

훨씬 향상되었다 이 테이블은 부동소수점 계산에 사용되었던 기타 특수 상수들과 함께.

으로 배치하였다on-chip ROM .

분기 예측2.4

에는 분기를 처리하기 위한 간단한 기술이 있다 분기명령이 실행되면 파이프라인i486 CPU .

은 분기가 단계에 이를 때까지 순차적으로 경로를 따라 패치와 해독을 계속하게 된다E . E

단계에서 는 분기 착신을 페치하고 파이프라인은 조건부 분기가 이루어지는지의 여부CPU

를 결정한다 분기가 이루어지지 않은 경우 는 페치된 목적 명령을 폐기하고 지연되지. CPU ,

않은 순차 경로를 따라 프로세스를 실행하고 분기가 이루어진 경우 패치 된 착신은 지연된,

두 개의 클럭과 함께 타겟 경로를 따라 해독을 개시하는데 사용된다.

Page 32: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 32 -

실행된 명령 중 에서 분기가 이루어졌으며 이는 펜티엄 프로세서를 사용함으로써15 20% ,~

향상된 영역을 보여주는 것이다.

또한 조건부 분기는 비교 명령 또는 파이프에 플래그를 세팅하는 다른 명령과 함께, U V

파이프에서 실행될 수 있다 분기는 기존 소프트웨어와 완전한 호환성을 가지며 따라서 수. ,

정이 불필요하다.

캐쉬 구성2.5

에는 코드 및 데이터용으로 통일된 단일 온칩 캐쉬가 사용된다 단일포트 캐쉬는i486 CPU .

완전한 라인의 순차 코드 프리패치 명령과 개별 위치 데이터 기준사이에서 요구가 있을 때

마다 즉시 멀티플렉스 된다 따라서 분기 타켓 데이터 메모리 참조와 같은 하드웨어를 효과.

적으로 이용하여 단계에서 프리패치 한다 코드와 데이터를 분리하고 있는 것과 비교해서E .

여러 장점을 가지고 있다.

한편 각 캐쉬는 프로토콜을 지원하고 있는데 펜티엄 마이크로프로세서에서는 고성, MESI ,

능 코어 파이프라인과 비트 데이터 버스를 이용하여 캐쉬 일관성문제를 풀기 위해 라이트64

백 프로토콜을 사용하는 기술상의 진보가 있었다 이 기술은. M(Modified), E(Exclusive),

의 단계를 이용하는 구조를 가지고 있다S(Shared), I(Invalid) 4 .

그 외 성능 향상 특성3.

펜티엄은 기존의 시스템에 비해 다양한 기능들을 개선시켰으며 최근 관심이 고조되고486 ,

있는 신뢰성 문제에 대해서도 상당한 노력을 기울인 것으로 보인다.

성능 향상3.1

펜티엄은 자주 사용되는 일부 명령들을 마이크로코드를 이용하지 않고 하드와이어 방식으로

처리하도록 함으로서 처리 속도를 배가시키고 있다.

Page 33: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 33 -

한편 대용량의 데이터를 처리하는 응용 프로그램으로 메모리 관리 기능을 확장하였는데, ,

데이터용에 바이트의 페이지를 사용할 수 있게 되었으며 이로 인해 대용량의 데이터를4M ,

취급할 경우 메모리 관리가 손쉬워졌다.

신뢰성 향상3.2

펜티엄은 신뢰성 향상을 위한 기능도 상당히 보완하고 있다 예를 들면 페리티 비트를 버스.

에 덧붙여서 고장과 오류를 점검하고 프로세서와 외부 에러를 최대한 점검하기 위해 기능적

중복 점검 기능을 추가하고 있다.

패리티의 대상이 되는 것으로는 명령 캐쉬와 데이터 캐쉬의 메모리 배열과 태그 배열,

마이크로코드 및 분기 타켓 버퍼 등이 있다 또 주소 버스와 데이터 버스에도 패리티TLB, .

비트를 할당해서 버스 사이클링 때 패리티 생성 및 점검을 프로세서가 수행한다.

기능적 중복 점검 기능을 수행하려면 두 개의 펜티엄 프로세서가 필요한데 이들 두 프로세

서 버스를 접속하여 한쪽을 주 모드로 다른 한쪽을 점검 모드로 사용한다.

컴파일러의 최적화3.3

펜티엄 마이크로프로세서와 함께 개발된 컴파일러의 기술은 인라인 그리고 기타, unrolling,

루프 변환과 같은 현재의 고성능 컴파일러에선 기계 독립적인 최적화 기술을 사용하고 있-

다.

Page 34: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 34 -

제 장 의 특징3 CN-RISC

의 특징은 다음과 같다 다중 명령 다중 프로세스를 강조한 비트 형CN-RISC . , 64 Load/Store

명령 축소형 중앙 처리 장치라 할 수 있다 가장 대표적인 구조 특징은 다음과 같다. .

비트 선형 어드레싱* 64

모든 레지스터 크기는 비트 정수 레지스터 개 부동 소수점 개* 64 ( 32 , 32 )

멀티 프로세서 기능 지원*

비트까지의 정수와 부동 소수점 형태 지원* 64

조건 코드 고정 레지스터 바이트 쓰기 등의 기능 강화* , ,

명령 처리를 세분화하는 슈퍼 파이프라인 정수 단계 부동 소수점 단계* ( 7 , 10 )

모든 명령은 비트 크기로 동일* 32

바이트 데이터 캐쉬* 8K

바이트 명령어 캐쉬* 8K

분기 예측을 통한 시스템 속도 증가*

바이패싱과 제어를 통한 레지스터 장애 해소* Resource

가상 번지 방식을 사용하여 효율적인 메모리 활용*

바이트 세금먼트 맵과 의 페이지 사용* 8K 8K

기술적 특징1.

공유 메모리 다중프로세싱1.l

단일 프로세서에 대한 사이클 시간과 다중 이슈는 구조의 수명에 제한적 요인이 될 수 있

다 그러나 다중 프로세서를 지원함으로써 성능과 수명의 이중 목표를 이루는데 중요하다.

할 수 있다 공유 메모리 위치를 갱신하기 위한 다중프로세서 는. interlocking primitive

형 이RISC load-locked, in-register modify, store-conditional sequence of instructions

라 할 수 있다.

Page 35: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 35 -

다른 프로세서로부터 가 없이 순차를 마치면 조건interrupt, exception, interfering write

저장 명령어 는 성공하게 되고 자동 갱신된 값을 지적해 주(store-conditional instruction) ,

는 상태 값을 리턴하게 된다 그렇지 않으면 조건 저장 명령어는 실패하게 되고 프로그램. ,

은 분기해서 순차를 다시 실행해야 한다 이러한 구조는 프로세서 성능을 잘 스케일하며. ,

동시에 간섭받지 않는 다중 순차를 허용한다.

이 구조는 약한 메모리 순서화 모델 을 제공하는 첫 구조이(memory-ordering model) RISC

다 약순서화란 다른 프로세서처럼 읽기 쓰기 순서가 순서적으로 될 필요가 없음을 말한다. .

다중 프로세서는 강한 순서화 모델을 가능하게 하나 성능을 제한할 수가 있다 예를 들어.

프로세서가 에러로 인해 쓰기 동작을 다시 하도록 할 경우 강한 순서화 모델이면 다른 읽기

나 쓰기 동작이 일어난 후에 재시도를 마치도록 한다.

파이프라인1.2

정수와 부동 소수점 파이프라인은 각각 과 단계로 이루어진다 처음 관계는 공통으로7 l0 . 4

명령어 패치와 이슈 부분으로 이루어진다 각 단계는 병렬로 두 개의 명령어까지 수행할 수.

있다 단계에서는 프로세서가 명령어 캐쉬에서 각 사이클당. IF(Instruction Fetch) 8Kbytes

한 쌍의 명령어를 패치한다 단계에서는 분기 예측 캐쉬 인덱스 계. BP(Branch Prediction) ,

산 등을 하는 명령어 프리패치를 제어한다 단계에서는 패치간 종속. IDO(Issue Decode 0)

성에 대해 점검한다 이러한 단계에서는 또한 디코딩을 마치고 단계에. IDI(Issue Decode l)

쓰일 수 있도록 세팅 작업을 하게 된다 단계에서는 레지스터 마찰 탐지 기능을 가지고. I1

있다 정수형과 부동 소수점 형 레지스터 파일을 단계에서 읽으며 정수형블럭 부동 소. ID1 ,

수점 블록 분기 계산 블럭에 데이터를 보내게 된다, load/store, .

정수 계산 파이프라인은 단계에서 정수 레지스터 파일에 결과를 하게 된다 반6 write-back .

면 부동 소수점 계산은 단계에서 부동 소수점 레지스터 파일에 쓰기를 한다 단계에서는9 . 4

프리패치가 다시 시도된 후의 분기를 해결하게 되며 결국 예측이 잘못되었을 경우 사이, 4

클의 를 쓰게 된다penalty .

Page 36: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 36 -

데이터 캐쉬내에 로드가 히트되었을 때 단계에서 정수나 부동 소수점 레지스터8Kbytes 6

파일에 쓰기 동작이 이루어지며 동시에 정수 계산도 이루어진다 정수 계산에 있어 분명한, .

두 사이클 지연에도 불구하고 데이터는 대부분의 경우에 첫 사이클 이후에 이용이 가능하

다 는 많은 동작을 충분한 파이프라인 속도. data bypass paths back-to-back dependent

로 가능하게 한다 이 칩은 많은 다른 바이패스 통로를 이용하며 종속 동작에 따른 파이프. ,

라인의 잠재 시간을 최소화하는 효과를 보여준다 모든 레지스터 충돌 점검은 하드웨어로.

가능하다.

분기 처리1.3

분기는 파이프라인과 슈퍼스칼라 컴퓨터 설계에서 여러 가지 문제를 일으킨다 이 구조는.

분기 명령어를 다루는데 여러 이점을 제공한다 대부분 컴퓨터 구조는 조건 코드를 사용해.

서 분기 결과를 결정하는데 이용되는 연산 동작의 결과를 붙잡아 두는 일을 하고 있다 불.

행하게도 이러한 조건 코드 레지스터는 동시에 다중 명령어를 수행할 경우에 충돌을 일으키

게 하는 원인이 되고 있다.

이러한 문제를 막기 위해 어떤 구조에서는 명령어 수를 줄이고 순간에 조건 코드 저장을 제

거해 버리는 명령어를 사용하고 있다 하지만 이러한 명령어는 연산compare-and-branch .

동작이 분기하기 전에 바로 동작하도록 강제되어져야 한다 전형적으로 연산 동작은 마지막.

파이프라인 단계의 하나이며 그래서 잘못 예측될 가능성이 매우 높다 슈퍼스칼라 구현에, .

서는 분기 결정을 빨리 결정하고 상관이 없는 명령어를 함께 수행할 수 있도록 한다, .

여기에서는 조건 코드를 이용하지 않는다 대신에 모든 분기를 단일 레지스터를 테스트 함.

으로써 해결할 수 있다 효과적으로 어떠한 레지스터도 분기 조건 정보를 가지고 있을 수.

있으며 따라서 문제를 해결할 수 있다 게다가 분기는 단지 하나의 레지스터만을, resource .

테스트하기 때문에 레지스터 파일을 읽고 난 후 바로 분기를 해결하기 위해서 와MSB, LSB

탐지만이 필요할 뿐이다zero .

파이프라인의 효율을 극대화하기 위해서는 분기 처리가 특히 중요하다 조건이동 명령어를.

통해 분기를 되도록이면 줄이려 하며 또한 하드웨어 지원 분기예측에 대한 힌트를 포함한,

다 이 칩은 분기를 예측하기 위해 변위 필드의 부호를 이용해서 조건 분기를 예. backward

측한다.

Page 37: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 37 -

명령어 프리패치는 스택을 포함한다 이 스택은 파이프라인이 진행LIFO(Last-in First-out) .

중일 때 갱신된다 그래서 두 가지의 이점을 가지고 있다 분기 예측을 잘못했을 경우 파이. .

프라인의 길이 때문에 빠른 사이클 시간에서 성능 이슈가 될 수 있다.

듀얼 이슈1.4 (dual issue)

듀얼 이슈 성능은 또한 사이클 시간의 영향을 막아 준다 동작은 코. load-and-store RISC

드를 주로 점하고 있기 때문에 동작 명령어를 가지고 수행할 수 있도록 번지를 구분할 수

있도록 한다 표 은 듀얼 이슈에 대한 일반 명령어의 쌍을 보여준다 여기에는 두 가지의. 3.1 .

예외가 있다 하나는 분기 명령어는 레지스터 파일 포트를 공유하기 때문에 같은 포맷을 가.

진 저장 명령과 함께 듀얼 이슈할 수 없다 또한 저장 명령이나 분기 명령은 명령어 버스를.

공유하고 있기 때문에 다른 포맷을 가진 동작 명령어와 듀얼 이슈 할 수 없다 예를 들어.

정수형 저장 명령어는 부동 소수점 형 동작과 듀얼 이슈 할 수 없다.

명령어 A 명령어 B

Integer operateLoad/storeBranch

Floating-point operateOperateLoad/store/operate

표 3.l A pair of dual issue

Page 38: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 38 -

구조적 특징2.

어드레싱2.1

가상 번지는 비트 폭을 가지고 있다 이 구조는 을 한다 따라서 이러한43 . byte addressing .

하드웨어를 지원하도록 바이트를 조정할 수 있는 명령어를 가지고 있으며 하드웨어zapper ,

적으로도 가 정수형 연산에서 구현되어 있다 이 구조는 페이지당zapper . virtual-to-physical

매핑을 할 수 있도록 하며 각 페이지는 바이트이다, 8K .

데이터 형2.2

이 구조가 비트 길이의 데이터도 지원을 하지만 데이터의 기본 단위는 비트이다 부동32 64 .

소수점 데이터형은 비트 싱글과 비트 더블 포맷을 가지고 있는 와 포맷을32 64 VAX IEEE

모두 포함한다 비트 데이터형은 직접 명령어가 아닌. Byte/word(16 ) load/store short

이 지원하고 있다 이와 같은 경우는 정상적인 연산이나 바이트sequences of instructions .

조건 명령어를 사용해서 레지스터내에서 조정된다.

프로세서2.3 state

하드웨어 프로세서는 비트 정수형과 부동소수점형 레지스터 파일을 각각 개 가지고 있64 32

다 은 항상 이다 필요한 스테이트를 완성하기 위해서는 비트. R31 0 . longword-aligned, 64

컴파일용 부동 소수점 제어 레지스터 다중프로세서 지원용 한 쌍의 레지스PC, IEEE , lock

터 등이 필요할 것이다.

명령어 포맷2.4

그림 에서처럼 이 구조는 부동 소수점 등의 가지 기본 명령3.1.1 operate, memory, branch, 4

어 포맷을 갖는다 모든 명령어는 비트 폭을 가지고 있으며 개 레지스터 필드에 을 포. 32 , 3 0

함하고 있다 레지스터 파일의 사용을 최소화하기 위해 레지스터 는 읽기 전용이며. B(RB) ,

레지스터 는 쓰기 전용이다C(RC) .

Page 39: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 39 -

포맷은 연산 논리 쉬프트 바이트 조정 명령어를 포함한다 조정가능한operate , , , .

명령어는 어레이와 문자 처리에 효과적인 동작을 한다 하나add/subtract, compare bytes .

의 입력 오퍼랜드를 테스트하고 다른 오퍼랜드로부터 데이터를 전송하게 하는 정수형 부동, /

소수점형 데이터를 사용하는 조건 이동 명령어는 단일 명령어 수행을 위해 분기를 제거한

다 비교 명령어는 단일 조건 코드를 사용하는 것보다는 직접 범용 레지스터에 쓰기 동작을.

한다 이 포맷에는 정수 나누기 명령어는 없다 필요할 경우에는 비트 곱셈을 에뮬레이. . 128

션용으로 이용한다.

메모리 포맷 명령어는 주로 이나 또한 약간의 추가 명령어를 포함한다load/store .

명령어는 기본적으로 두 개의 레지스터를 필요로 한다 번지 계산 부호Load/Store . effective

를 이용해서 비트 를 비트로 확장할 수 있으며 비트 기본 레지스터16 displacement 64 , 64

값을 더할 수 있다 또한 이 구조는 비트 데이터양에 대한 동작을 할 수 있. 32 load/store

다 일반적인 동작은 정렬된 데이터양을 이동하고 정렬되지 않은 레퍼런스에 대해 트랩을. ,

하지만 정렬되지 않은 번지 비트를 포함하는 명령이일 경우 바이트 조정 명령어를 가지고

유용하게 이용할 수 있다 점프 명령어 계산은 메모리 포맷을 이용한다 이러한 명령어는. .

필드를 이용하지 않고서도 기본 어드레스로부터 직접 목표 번지를 결정한다displacement .

그러나 사용되지 않는 비트는 하드웨어 프리페칭 메카니즘에 힌트로 정의됨으로써 파이프라

인 효율을 증대시킬 수 있다 이러한 구조의 추가적인 정보로는 하드웨어는 계속해서 패칭.

을 하고 그 이후 실제 목표 번지는 레지스터 파일내에 있는 것을 이용할 수 있다 한 쌍의, .

로드 번지 명령어도 메모리 포맷을 이용하며 비트 을 이용해서 큰 상수를, 16 displacement

만들어 내는데 편리한 방법을 제공한다.

이 구조는 정수형이나 부동 소수점형 데이터형에 대해 분기 포맷 명령어를 지원한다 이러.

한 명령어는 목표점에 대한 분기의 성공이나 실패를 에operation-code-specified condition

대한 단일 레지스터를 테스트함으로써 알 수 있다 목표점을 계산하기 위해서는 명령어는.

비트 필드를 갱신 된 프로그램 코드에 더해서 분기 영역을 포괄21 displacement ±4Mbyte

할 수 있다.

Page 40: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 40 -

기본 명령어 포맷Fig.3.1

정수 단위2.5

는 개의 비트 범용 레지스터로 구성된다 이것은 개의 포트IRF(Integer Register File) 32 32 . 6

를 제공하는데 정수 계산과 분기 동작을 동시에 병렬로 수행하기 위해 개의, load, store, 4

읽기와 개의 쓰기 포트를 갖는다 데이터 패스는 전용 덧셈기 시프터 곱셈기 논리 단위2 . , , ,

등을 포함한다 로직과 덧셈기는 한 사이클에 수행한다 시프터는 두 사이클이 필요하다 곱. . .

셈기는 파이프라인은 되지 않으나 동작과 정수 나누기로 생긴 비트extended precision 128

를 상위 비트만을 취하는 명령어를 지원한다64 UMULH .

Page 41: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 41 -

부동 소수점 단위2.6

부동 소수점 단위는 짧은 잠재 시간을 갖는 최대의 성능을 갖는다 개의 비트 레지스터. 32 64

파일을 가지고 있으며 개의 읽기와 개의 쓰기 포트를 가지고 있다 라운딩 동작은 모든, 3 2 .

동작의 마지막 덧셈 동작 단계에서 동시에 끝낸다 호환성을 위해 이 단위는 포맷과. F-, G-

데이터 포맷을 지원한다 사이클 잠재시간을 필요로 하는IEEE single-/double-precision . 6

종속 동작에서 각 사이클마다 새로운 명령어를 초기화 할 수 있다.

번지 단위2.7

번지 단위는 모든 동작을 수행한다 다른 단위와 함께 병렬로 수행하기 위해서load/store .

정수 계산 덧셈기와는 별개로 전용 변위 덧셈기를 가지고 있다 세그먼트 맵을 가지고 계속.

되는 페이지 그룹이나 단일 페이지를 해석하는데 사용될 수 있다 이 단위는 각 엔트리에.

대해 범위를 허용한다 이 단위는 블럭 독립8 Kbytes, 64 Kbytes, 512 Kbytes, 4Mbytes .

명령어를 피하기 위해 세개의 로드 까지를 처리할 수 있다miss .

저장 명령어는 개 바이트 쓰기 버퍼 안에 데이터를 저장한다 쓰기 버퍼는 외부로의4 X 32 .

접속을 줄일 수 있는 장점을 가지고 있다 또한 저장에 대한 일시적인 지연을 줌으로써 이.

상적인 로드 데이터에 대한 빠른 서비스를 할 수 있다.

Page 42: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 42 -

제 장 명령어 셑트4

제 절 명령어 포맷1

과1. Operand Notation type

Notation Meaning

RaRb#bRcFaAbAc

An integer register operand in Ra field of the instruction.An integer register operand in Rb field of the instruction.An integer register operand in Rb field of the instruction.An integer register operand in Rc field of the instruction.A floating-point register operand in Ra field of the instruction.A floating-point register operand in Rb field of the instruction.A floating-point register operand in Rc field of the instruction.

표4.1 Operand Notation

Notation Meaning

RavRbvFavFbvPcRnFn

The value of the Ra operand.The value of the Rb operand.The value of the floating point Fa operand. register FaThe value of the floating point Fb operand.Updated PC valueContents of integer register nContents of floating-point register n

표 값과 표현4.2 Operand

Page 43: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 43 -

Operator Meaning

DIV 정수 나누기

LEFT_S IFT(x,y)ㅐLogical shift of first operand by the second operand.Y is an unsigned shift value. Zeros are moved into thevacated bit positions, and shifted out bits are discarded.

NOT 보수l'

OR 논리적인 합

PHISICAL-ADDRESS Translation of a virtual address

RIGHT-SHIFT(x, y)

Logical right shift of first operand by the secondoperand. Y Y is an unsigned shift value. Zeros aremoved into vacated bit positions, and shifted out bitsare discarded.

SEXT(x) 를 부호확장x

TEST(x, cond)레지스터 의 내용을 조건문과 비교해 본다 그 관계가x .이면 를 리턴 한다O TRUE .

XOR Logical difference

ZEXT(x) 를 확장x zero

Operator Meaning

! Comment delimiter

+ Addition

- Subtraction

* Signed multiplication

*U Unsigned multiplication

** Exponentiation(left argument raised to right argument)

/ Division

<- Replacement

!! Bit concatenation

{} Indicates explicit operator precedence

(x} Contents of memory location whose address is x

x<m: n> Contents of bit field of x defined by bits n through m

x<m> M'th bit of x

AND Logical product

ARITH_RIGHT_SHIFT(x, y) Arithmethic right shift of first operand by the secondoperandY is an unsigned shift value

BYTE_ZAP(x, y) X is a quadword, y is an 8-bit vector in which eachbit corresponds to a byte of the result. The y bit to xbyte correspondence is y<n> <-> x<8n+7: 8n>. Thiscorrespondence also exists between y and the result.

표4.3(Cont.): Operators

Page 44: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 44 -

명령어 포맷2.

는 기본적으로 가지의 명령어 포맷을 가지고 있다CN-RISC 4 .

Memory□

Branch□

Operate□

Floating-point Operate□

모든 명령어 포맷은 비트 길이를 가지고 있으며 동작 코드 는 명령어의32 (OPcode) <31:26>

비트로 구별한다.

사용이 되지 않는 레지스터 필드인 등은 로 셑팅되어야 한다 각 명령어Ra, Rb, Fa, Fb 31 .

포맷에 대한 그림은 그림 을 참조한다3.1 .

Page 45: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 45 -

제 절 명령어 기술2

이 프로세서에서 지원 가능한 명령어를 데이타패스 동작 별로 나누어 작성한다 기능 필드.

가 필요한 명령어의 경우는 따로 기능 필드를 명시한다 모든 비트는 진수를 나타낸다. 16 .

Mnemonic Operation Opcode

LDA Load Address 0x08

LDA Load Sign_extended Longword 0x28

LDQ Load Quadword 0x29

LDQ_U Load Quadword Unaligned 0x0B

STL Store Longword 0x2C

STL_C Store Longword Conditional 0x2E

STQ Store Quadword 0x2D

STQ_U Store Quadword Unaligned 0x0F

표 명령어4.5 Load/Store

Instruction Description Opcode

BEQ Branch if Register Equal to Zero 0x39

BGE Branch if Register Greater Then or Equal to Zero 0x3E

BGT Branch if Register Greater Than Zero 0x3F

BLBC Branch if Register Low Bit Is Clear 0x38

BLBS Branch if Register Low Bit Is Set 0x3C

BLE Branch if Register Less Than or Equal to Zero 0x3B

BLT Branch if Register Less Than Zero 0x3A

BNE Branch if Register Not Equal to Zero 0x3D

표 조건 분기 명령어4.6

Instruction Description Opcode

BR Unconditional Branch 0x30

BSR Branch to Subroutine 0x34

표 비조건 분기 명령어4.7

Page 46: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 46 -

Mnemonic Operation Opcode Function

ADDL Add Longword(with Over flow) 0X10 0x00

ADDQ Add Quadword(with Over flow) 0X10 0x20

ADDLU Add Longword(without Over flow) 0X10 0x40

ADDQU Add Quadword(without Over flow) 0X10 0x60

S4ADDL Sca1ed Add Longword by 4 0X10 0x02

S4ADDQ Sca1ed Add Quadword by 4 0X10 0x22

S8ADDL Sca1ed Add Longword by 8 0X10 0x12

S8ADDQ Sca1ed Add Quadword by 8 0X10 0x32

CMPEQ Compare Signed Quadword Equal 0X10 0x2D

CMPLT Compare Signed Quadword Less Than 0X10 0x4D

CMPLE Compare Signed Quadword Less Than or Equal 0X10 0x6D

CMPULT Compare Unsigned Quadword Less Than 0X10 0x1D

CMPULE Compare Unsigned Quadword Less Than 0X10 0x3D

MULL Multiply Longword 0X13 0x00

MULQ Multiply Quadword 0X13 0x20

UMULH Multiply Longword Unsigned High 0X13 0x40

UMUQH Multiply Quadword Unsigned High 0X13 0x60

SUBL Subtract Longword(with Over flow) 0X10 0x09

SUBQ Subtract Quadword(with Overflow) 0X10 0x29

SUBLU Subtract Longword(without Over flow) 0X10 0x49

SUBQU Subtract Quadword(without Over flow) 0X10 0x69

S4SUBL Scaled Subtract Longword by 4 0X10 0x0B

S4SUBQ Scaled Subtfact Quadword by 4 0X10 0x2B

S8SUBL Scaled Subtfact Longword by 8 0X10 0x1B

S8SUBQ Scaled Subtfact Quadword by 8 0X10 0x3B

표 일반 연산 명령어4.8

Page 47: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 47 -

Mnemonic Operation Opcode Function

AND Logical Product 0X11 0×00

BIC Logical Product with Complement 0X11 0×08

BIS Logical Sum 0X11 0×20

EOV Logical Equivalence(XORNOT) 0X11 0×48

ORNOT Logical Sum with Complement 0X11 0×28

XOR Logical Difference 0X11 0×40

CMOVEQ CMOVE if Register Equal to Zero 0X11 0×24

CMOVGE CMOVE if Register Greater Than or Equal to Zero 0X11 0×46

CMOVGT CMOVE if Register Greater Than Zero 0X11 0×66

CMOVLBC CMOVE if Register Low Bit Clear 0X11 0×16

CMOVLBS CMOVE if Register Low Bit Set 0X11 0×14

CMOVLE CMOVE if Register Less Than or Equal to Zero 0X11 0×64

CMOVLT CMOVE if Register Less Than Zero 0X11 0×44

CMOVNE CMOVE if Register Not Equal to Zero 0X11 0×26

SLL Shift Left Logical 0X11 0×39

SRA Shift Right Arithmetic 0X11 0×3C

SRL Shift Right Logical 0X11 0×34

표 논리 이동 연산 명령어4.9 ,

Page 48: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 48 -

Mnemonic Operation Opcode Function

CMPBGE Compare Byte 0×10 0×0F

EXTBL Extract Byte Low 0×12 0×06

EXTWL Extract Word Low 0×12 0×16

EXTLL Extract Longword Low 0×12 0×26

EXTQL Extract Quadword Low 0×12 0×36

EXTWH Extract Word High 0×12 0×5A

EXTLH Extract Longword High 0×12 0×6A

EXTQH Extract Quadword High 0×12 0×7A

INSBL Insert Byte Low 0×12 0×0B

INSWL Insert Word Low 0×12 0×1B

INSLL Insert Longword Low 0×12 0×2B

INSQL Insert Quadword Low 0×12 0×3B

INSWH Insert Word High 0×12 0×57

INSLH Insert Longword High 0×12 0×67

INSQH Insert Quadword High 0×12 0×77

MSKBL Insert Byte Low 0×12 0×02

MSKWL Insert Word Low 0×12 0×12

MSKLL Insert Longword Low 0×12 0×22

MSKQL Insert Quadword Low 0×12 0×32

MSKWH Insert word High 0×12 0×52

MSKLH Insert Longword High 0×12 0×62

MSKQH Insert Quadword High 0×12 0×72

ZAP Zero Bytes 0×12 0×30

ZAPNOT Zero Bytes Not 0×12 0×31

표 바이트 명령어4.10

Mnemonic Operation Opcode

LDF Load F_floating 0×20

LDG Load G_floating(Load D_floating) 0×21

LDS Load S_floating(Load Longword Integer) 0×22

LDT Load T_floating(Load Quadword Integer) 0×23

STF Store F_floating 0×24

STG Store G_floating(Store D floating)_ 0×25

STS Store S_f1oating(Store Longword Integer) 0×26

STT Store T_f1oating(Store Quadword Integer) 0×27

표 부동 소수점 명령어4.11 Load/Store

Page 49: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 49 -

Mnemonic Operation Opcode

FBEO Floating Branch Equal 0×31

FBGE Floating Branch Greater Than or Equal 0×36

FBGT Floating Branch Greater Than 0×37

FBLE Floating Branch Less Than or Equal 0×33

FBLT Floating Branch Less Than 0×32

FBNE Floating Branch Not Equal 0×3D

표 부동 소수점 분기 명령어4.12

Mnemonic Operation Opcode Function

CPYS Copy Sign 0×17 0×020

CPYSE Copy Sign and Exponent 0×17 0×022

CPYSN Copy Sign Negate 0×17 0×021

CVTLQ Convert Longword to Quadword 0×17 0×010

CVTQL Convert Ouadword to Longword 0×17 0×030

표 컨버젼 명령어4.13

Page 50: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 50 -

Mnemonic Operation Opcode Function

ADDF Add F_floating 0×15 0×080

ADDG Add G_floating 0×15 0×0A0

ADDS Add S_floating 0×16 0×080

ADDT Add T_floating 0×16 0×0A0

CMPGxx Compare G_floating 0×15 0×0A×

CMPTxx Compare T_floating 0×16 0×0A×

CVTGF Convert C_floating to F_floating 0×15 0×0AC

CVTGQ Convert G_floating to Q_floating 0×15 0×0AF

CVTQF Convert Q_floating to F_floating 0×15 0×0BC

CVTQG Convert Q_floating to G_floating 0×16 0×0BE

CVTQS Convert Q_floating to S_floating 0×16 0×0BC

CVTQT Convert Q_floating to T_floating 0×16 0×0BE

CVTTQ Convert C_floating to Q_floating 0×16 0×0AF

CVTTS Convert T_floating to S_floating 0×16 0×0AC

DIVF Divide F_floating 0×15 0×083

DIVG Divide G_floating 0×15 0×0A3

DIVS Divide S_floating 0×16 0×083

DIVT Divide T_floating 0×16 0×0A3

MULF Multiply F_floating 0×15 0×082

MULG Multiply G_floating 0×15 0×0A2

MULS Multiply S_floating 0×16 0×082

MULT Multiply T_floating 0×16 0×0A2

SUBF Subtract F_floating 0×15 0×081

SUBG Subtract G_floating 0×15 0×0A1

SUBS Subtract S_floating 0×16 0×081

SUBT Subtract T_floating 0×16 0×0A1

표 부동 소수점 연산 명령어4.14

Page 51: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 51 -

명령어2.1 Load

2.1.l LDA Ra, disp(Rb) Ra <- Rbv + SEXT(disp)

2.2.2 LDL Ra, disp(Rb) va<-Rbv+{SEXT(disp)and 0x00000000ffffffff}

2.2.3 LDQ-U Ra, disp(Rb) va <- {{Rbv + SEXT(disp)} AND NOT 7}

Ra <- (va)<[63:0>

저장 명령어2.2

2.2.1 STL Ra, disp(Rb) va <- {Rbv + SE)(T(disp)} (va) <- SEXT{ Rav<3l:0> }

2.2.2 STQ Ra, disp(Rb) va <- {Rbv + SEXT(disp)} (va) <- Rav

2.2.3 STQ-U Ra, disp(Rb) va<-{{Rbv+SEXT(disp)}AND NOT 7} (va) <- Rav

제어 명령어2.3

이 구조에서는 정수 조건 분기 비조건 분기 서브루틴으로 분기와 점프 명령어를 제공하고, ,

있다 이 명령어에서 사용하는 값을 갱신된 값을 가르킨다. PC .

고성능을 성취하기 위해 분기 예측 모델에 기초한 외부적인 힌트 필드를 포함한다.

가 분기 의 구현을 통해 캐쉬에서 기대되는 목적 번지을 예측하는데 좋은. (JSR/RET/JMP) I-

성능을 제공하며 레지스터 에 접속된다, Rb .

나 정확히 서브루틴 리턴을 예측하는 것은 좋은 성능을 얻는 관건이 된다 분기 명령에서. .

이용되지 않는 필드는 기능 코드를 포함하게 된다.

Page 52: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 52 -

조건 분기2.3.1

Bxx Ra, disp Conditional Branch

{update PC}

va <- PC + { 4*SEXT(disp)}

IF TEST(Rav, Condition-based on Opcode) THEN_ _

PC <- va

0x3x Ra disp

6 5 21

비조건 분기2.3.2

BxR Ra, disp {update PC}

Ra <-PC

PC <- PC + { 4*SEXT(disp)}

0x3x Ra disp

6 5 21

다음 명령어의 는 레지스터 에 써지고 는 목적 번지로 로드 된다PC Ra , PC .

변위는 부호화 로 다루어진다longword .

과 은 유사한 동작을 한다 단지 분기 예측 논리에 힌트가 다를 뿐이다BR BSR . .

은 서브루틴 콜 리턴 번지를 분기예측 스택에 저장해 놓는다 로서 예측되며 반면에BSR ( .) ,

은 단지 분기로서 예측된다BR .

점프 명령어2.4

mnemonic Ra, (Rb), hint {update PC}

va <- Rbv AND {NOT 3}

Ra <- PC

PC <- va

Page 53: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 53 -

명령어 포맷은 메모리 명령어와 같으며 단지 변위 를 가지고 각 명령어를 구별한, <15:14>

다 즉 변위의 상위 비트가 힌트 역할을 하는 것이다 흔히 는 을 오퍼랜드로 사용한. 2 . Ra R31

다.

disp<15:14> Meaning Predicted Target<l5:0>PredictionStack Action

00 JMP PC+{4* disp <13:0>} -

01 JSP PC+{4* disp <13:0>} Push PC

10 RET Prediction stack Pop

11 JSR_COROUTINE Prediction stack PoP, Push PC

정수 연산 명령어2.5

정수 연산 명령어는 더하기 빼기 곱하기 비교 등의 동작을 한다, , , .

형 동작 명령어 포맷은 정수 레지스터와 정수 레지스터 사이의 명령어에 유용하다 소스R- .

오퍼랜드중 하나는 문자 상수일 수도 있다 두 경우를 구분하는 것은 비트 가 인가. <12> 0 1

인가로 구별한다.

일반 명령어 포맷

형 명령어 포맷은 비의 오피코드 필드를 가지고 있으며 비트의 기능 필드를 가지고 있R- 6 , 7

다 기능 필드를 사용하지 않을 경우는 를 만들어 낸다. UNPREDICT ABLE .

오퍼랜드 필드는 이다Ra, Rb, Rc .

피드는 소스 오퍼랜드를 나타낸다 정수 오퍼랜드는 다음과 같은 형태를 취한다Ra . Rav .

Page 54: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 54 -

IF inst<25:21> EQ 31 THEN

Rav <- 0

ELSE

Rav <- Ra

END

필드는 소스 오퍼랜드를 나타낸다 정수 오퍼랜드는 문자나 정수 값을 갖는다 비트Rb . .

에 따라 두 항을 구분하며 문자에 대한 계산은 에서 하게 된다 따라서 는<12> , ALU . ALU

일반 연사 논리뿐만 아니라 확장 기능을 가지고 있는 다목적 가 되어야 한다 정수0 ALU .

오퍼랜드는 다음과 같은 형태를 취한다Rbv .

IF inst<12> EQ l THEN Rbv <- ZEXT(inst<20:13>)

ELSE

IF inst<20:16> EQ 31 THEN Rbv <- 0

ELSE

Rbv <- Rb

END

END

2.5.l Longword Add

ADDL Ra, Rb, Rc Rc <- SEXT( ( Rav + Rbv )<31:0> )

ADDL Ra, #b, Rc

0×10 Ra Rb 000 0 0×00 Rc

6 5 5 3 1 7 5

레지스터 는 레지스터 에 더하고 부호확장 비트 합을 에 쓴다Ra Rb , 32 Rc .

Page 55: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 55 -

의 합 상위 비트는 무시된다Ra, Rb 32 .

2.5.2 Scaled Longword Add

SxADDL Ra, Rb, Rc

SxADDL Ra, #b, Rc

Operation:

CASE

S4ADDL: Rc <- SEXT(((LEFT-SHIFT(Rav,2)) + Rbv)<31:0>

S8ADDL: Rc <- SEXT(((LEFT-SHlFT(Rav,3)) + Rbv)<31:0>

ENDCASE

2.5.3 Quadword Add

ADDQ Ra, Rb, Rc Rc<- Rav + Rbv

ADDQ Ra, #b, Rc

2.5.4 Scaled QuadWord Add

SxADDQ Ra, Rb, Rc

SxADDQ Ra, #b, Rc

Operation:

CASE

S4ADDQ:Rc <- LEFT_SHIFT(Rav,2) + Rbv

S8ADDQ:Rc <- LEFT SHIFT(Rav,3) + Rbv」

ENDCASE

2.5.5 Integer Signed Compare

CMPxx Ra, Rb, Rc IF Rav SIGNED_RELATION Rbv THEN

CMPxx Ra, #b, Rc Rc <- 1

Page 56: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 56 -

ELSE

Rc <- 0

2.5.6 Integer Unsigned Compare

CMPUxx Ra, Rb, Rc IF Rav UNSIGIqEI)-RELATION Rbv THEN

CNIPUxx Ra, #b, Rc Rc <- 1

ELSE

Rc <- 0

2.5.7 Longwond Multiply

MULL Ra, Rb, Rc Rc <- SEXT( ( Rav * Rbv )<31:0> )

MULL Ra, #b, Rc

2.5.8 Quarword Multiply

MULQ Ra, Rb, Rc Rc <- Rav * Rbv

MULQ Ra, #b, Rc

2.5.9 Unsigned Quadword Multiply High

UMULH Ra, Rb, Rc Rc <- {Rav *U Rbv}<127:64>

UMULH Ra, #b, Rc

2.5.10 Longword Subtract

SUBL Ra, Rb, Rc Rc <- SEXT(( Rav - Rbv)<31:0>

SUBL Ra,#b, Rc

2.5.11 Scaled Longword Subtract

SxSUBL Ra, Rb, Rc

Page 57: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 57 -

SxSUBL Ra, #b, Rc

CASE

S4SUBL: Rc <- SEXT(((LEFT_SHIFT(Rav,2)) - Rbv)<31:0>)

S8SUBL: Rc <- SEXT(((LEFT_SHIFT(Rav,3)) - Rbv)<31:0>)

ENDCASE

2.5.l2 Quadword Subtmct

SUBQ Ra, Rb, Rc Rc <- Rav - Rbv

SUBQ Ra, #b, Rc

2.5.13 Scaled Quadword Subtract

SxSUBQ Ra, Rb, Rc

SxSUBQ Ra, #b, Rc

CASE

S4SUBQ: Rc <- LEFT-SHIFT(Rav,2) - Rbv

S8SUBQ: Rc <- LEFT-SHIFT(Rav,3) - Rbv

ENDCASE

논리와 이동 명령어2.6 (shift)

2.6.l Logical Functions

mnemonic Ra, Rb, Rc Rc <- Rav AND Rbv∠

mnemonic Ra, #b, Rc Rc <- Rav OR Rbv

Rc <- Rav XOR Rbv

Rc <- Rav AND { NOT Rbv }

Rc <- Rav OR { NOT Rbv }

Rc <- Rav XOR { NOT Rbv }

Page 58: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 58 -

2.6.2 Conditional Move Integer

CMOVxx Ra, Rb, Rc IF TEST(Rav, Condition_base on opcode) THE_ _

NCMOVxx Ra, #b, Rc Rc <- Rbv

2.6.3 Shift Logical

SxL, R a, Rb, Rc SLL: Rc <- LEFT_SHIFT(Rav, Rbv<5:0>)

SxL Ra, #b, Rc SLL: Rc <- RIGHT_SHIFT(Rav, Rbv<5:0>)

2.6.4 Shift Arithmetic

SRA Ra, Rb, Rc Rc <- ARITH RIGHT SHlFT(Rav, Rbv<5:0>)_ _

SRA Ra, #b, Rc

명령어2.7 Byte-Manipulation

2.7.1 Compare Byte

CMPBGE Ra, Rb, Rc

CMPBGE Ra, #b, Rc

FOR i FROM 0 TO 7

temp<8:0> <- { 0 1l Rav<i*8+7:i*8} + { 0 Il NOT Rbv<i*8+7:i*8} + 1

Rc<i> <- temp<8>

END

Rc<63:8> <- 0

2.7.2 Extract Byte

EXTxx Ra, Rb, Rc

EXTxx Ra, #b, Rc

Page 59: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 59 -

CASE

EXTBL: byte mask <- 0000 000l_ ₂

EXTWx: byte mask <- 0000 0011_ ₂

EXTLx: byte mask <- 0000 11112_

EXTQx: byte mask <- 1111 11112_

ENDCASE

CASE

EXTxL:

byte loc <- Rbv<2:0>*8_

temp <- RIGHT-SHIFT(Rav, byte loc<5:0>_

Rc <- BYTE_ZAP(temp, NOT(byte mask) )_

ENDCASE

EXTxH:

byte loc <- 64 - Rbv<2:0>*8_

temp <- LEFT_SHIFT(Rav, byte loc<5:0>_

Rc <- BYTE-ZAP(temp, NOT(byte mask) )_

ENDCASE

2.7.3 Byte Insert

INSxx Ra, Rb, Rc

INSxx Ra, #b, Rc

CASE

INSBL: byte mask <- 0000 0000 0000 0001_ ₂

INSWx: byte mask <- 0000 0000 0000 0011_ ₂

INSLx: byte mask <- 0000 0000 0000 1111_ ₂

INSQx: byte mask <- 0000 0000 1111 1111_ ₂

ENDCASE

Page 60: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 60 -

byte mask <- LEFT_SHIFT(byte mask, Rbv<2:0>)_ _

CASE

INSxL:

byte loc <- Rbv<2:0>*8_

temp <- LEFT_SHIFT(Rav, byte loc<5:0>_

Rc <- BYTE-ZAP(temp, NOT(byte mask<7:0>) )_

ENDCASE

INSxH:

byte loc <- 64 - Rbv<2:0>*8_

temp <- RIGHT SHIFT(Rav, byte loc<5:0>」 _

Rc <- BYTE_ZAP(temp, NOT(byte_mask<15:8>) )

ENDCASE

2.7.4 Byte Mask

MSKxx Ra, Rb, Rc

MSKxx Ra, #b, Rc

CASE

MSKI3L: byte mask <- 0000 0000 0000 0001_ ₂

MSKWx: byte mask <- 0000 0000 0000 0011_ ₂

MSKLx: byte mask <- 0000 0000 0000 1111_ ₂

MSKQx: byte_mask <- 0000 0000 l111 1111₂

ENDCASE

byte mask <- LEFT_SHIFT(byte_mask, Rbv<2:0>)_

CASE

MSKxL:

Rc <- BYTE-ZAP(temp, NOT(byte_mask<7:0>) )

ENDCASE

Page 61: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 61 -

MSKxH:

Rc <- BYTE-ZAP(temp, NOT(byte mask<15:8>) )_

ENDCASE

2.7.5 Zero Bytes

ZAPxx Ra, Rb, Rc

ZAPxx Ra, #b, Rc

ZAP:

Rc <- BYTE ZAP(Rav, Rbv<7:0>)_

ZAPNOT:

Rc <- BYTE ZAP(Rav, NOT Rbc<7:0>)_

부동 소수점 메모리 명령어2.8

2.8.l Load F floating_

LDF Fa, disp(Rb) va <- { Rbv + SEXT(disp) }

Fa <- (va)<15> MAP_F((va)<14:7>∥ ∥

(va)<6:0> <va><31d6> 0<28:0>∥ ∥

2.8.2 Load G_floating

LDG Fa, disp(Rb) va <- { Rbv + SEXT(disp) }

Fa <- (va)<15:0> (va)<31:16>∥ ∥

(va)<47:32> (va)<63:48>∥

2.8.3 Lad S-floating

LDS Fa, disp(Rb) va <- { Rbv + SEXT(disp) }

Fa <- (va)<31> MAP_S((va)<30:23>)∥ ∥

(va)<22:0> 0<28:0>∥

Page 62: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 62 -

2.8.4 Load T_floating

LDT Fa, disp(Rb) va <- { Rbv + SEXT(disp) }

Fa <- (va)<63:0>

2.8.5 Store F_floating

SF Fa, disp(Rb) va <- { Rbv + SEXT(disp) }

(va)<31:0> <- Fav<44:29> Fav<63:62> Fav<58:45>∥ ∥

2.8.6 Store G floating_

STG Fa, disp(Rb) va <- { Rbv + SEXT(disp) }

(va)<63:0> <- Fav<15:0> Fav<31 6>∥ 」 ∥

Fav<47:32> Fav<63:48>∥

2.8.7 Store S-floating

STS Fa, disp(Rb) va <- { Rbv + SEXT(disp) }

(va)<31:0> <- Fav<63:62> Fav<58:29>∥

2.8.8 Store T_floating

STT Fa, disp(Rb) va <- { Rbv + SEXT(disp) }

(va)<63:0> <- Fav<63:0>

부동 소수점 분기 명령어2.9

Page 63: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 63 -

조건 분기2.9.1

FBxx Fa, disp

{updata PC}

va <- PC + { 4*SEXT(disp) }

IF TEST(Fav, Condition base on_opcode) THEN_ _

PC <- va

부동 소수점 일반 동작 명령어2.l0

2.10.1 Copy Sign

CPYSy Fa, Fb, Fc

CASE

CPYS: Fc <- Fav<63> Fbv<62:0>∥

CPYSN: Fc <- NOT(Fav<63>) Fbv<62:0>∥

CPYSE: Fc <- Fav<[G:52> Fbv<5l:0>∥

ENDCASE

정수를 정수로 변환2.10.2

CVTxy Fb, Fc

CASE

CVTQL: Fc <- Fbv<31:30> 0<2:0>∥ ∥

Fbv<29:0> 0<28:0>∥

CVTLQ: Fc <- SEXT(Fbv<63:62> Fbv<58:29>)∥

ENDCASE

부동 소수점 조건 이동2.10.3

Page 64: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 64 -

FCMOVxx Fa, Fb, Fc

IF TEST(Fav, Condition based-on Opcode) THEN_ _

Fc <- Fbv

부동 소수점 더하기2.10.4

ADDx Fa, Fb, Fc Fc <- Fav + Fbv

부동 소수점 비교2.10.5

CMPGyy Fa, Fb, Fc

IF Fav SIGNED_RELATION Fbv THEN

Fc <- 4000 0000 0000 0000

ELSE

Fc <- 0000 0000 000 0000

부동 소수점을 정수로 변환2.10.6

CVTQy Fb, Fc Fc <- { conversion of Fbv<63:0> }

정수를 부동 소수점으로 변환2.10.7

CVTQy Fb,Fc Fc <- { conversion of Fbv ]:0/◁

부동 소수점을 부동 소수점으로 변환2.10.8

CVTxy Fb, Fc Fc <- { conversion of Fbv }

부동 소수점 나누기2.10.9

DIVx Fa, Fb, Fc Fc <- Fav/Fbv

부동 소수점 곱하기2.10.10

Page 65: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 65 -

MULx Fa, Fb, Fc Fc <- Fav * Fbv

부동 소수점 빼기2.10.11

SUBx Fa, Fb, Fc Fc <- Fav - Fbv

Page 66: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 66 -

제 장 프로세서5 CN-RISC

제 절 데이터패스 와 제어1 (Datapath) (Control)

소개1.

이 절에서 우리는 의 명령어 셑트 구현을 위한 데이터패스와 제어 장치를 설계한CN-RISC

다.

우리가 설계하는 의 코아는 다음과 같은 명령어 셑트를 포함하고 있다RISC .

메모리 참조 명령어. LOAD, STORE

연산 논리 명령어 등. ADD, SUB, AND

분기 명령어와 점프 명령어.

위의 명령어들은 정수형에 대한 것뿐만이 아니라 부동 소수점에 대한 연산 명령어를 따로

가지고 있다.

앞 절에서 우리는 명령어의 코아 집합을 보았다 이러한 명령어를 구현하는 필요성의 대부.

분은 매우 유사하다 크게 두 단계로 나누어진다. .

명령어를 가져오기 위한 코드를 가지고 있는 를 메모리로 보낸다. PC .

명령어 필드를 이용해서 읽을 레지스터를 선택 한 다음 한 개나 두 개의 레지스터 값을. ,

읽는다 로드 명령어일 경우는 레지스터 하나를 읽기만 하면 되지만 다른 명령어들은 두 개. ,

의 레지스터 값을 읽어야 한다.

위와 같은 두 단계를 거친 후에는 명령어 형태에 따라 동작이 달라진다 그러나 세 가지 명.

령어 형태 메모리 참조 연산 논리 분기 각각에 대한 동작은 매우 비슷하다고 할 수 있다( , , ) .

예를 들어 모든 명령어 형태는 레지스터를 읽은 후 를 이용한다 메모리 참조 명령어는ALU .

유효 번지 계산을 위해 를 이용한다 연산 논리 명령어는 오피코드를 실행하기 위해ALU .

를 이용한다ALU .

Page 67: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 67 -

분기 명령어도 비교를 하기 위해서 를 이용하고 있다 위와 같이 명령어 집합의 단순성ALU .

과 규칙성을 이용하면 많은 명령어 형태를 실행시킬 수 있는 구조를 구현할 수 있다.

를 이용한 후 다른 명령어 형태를 마치기 위해서는 다른 동작이 필요하다 메모리 참ALU , .

조 명령어의 경우 로드하거나 저장하기 위해 데이터를 가지고 있는 메모리에 접속할 필요가

있다 연산 논리 명령어는 데이터를 에서 레지스터로 가져온다 마지막으로 분기 명령ALU .□

어는 비교를 바탕으로 다음 명령어 번지를 바꿀 필요가 있다 이 절의 나머지에서는 장치들.

간의 상호 연결과 각 장치를 동작시키기 위한 신호 발생을 만들어 낼 것이다.

구현2. RISC

우선 머신을 설계하기에 앞서 머신을 구현하기 위한 논리는 어떻게 동작하고 그 머신에 클,

럭은 어떻게 주어지는가를 먼저 알아야 한다.

시스템을 구현하는 데 있어 기능적인 장치들은 크게 두 개의 논리 요소로 나눌 수 있다 상.

태 를 가지고 있는 요소와 데이터 값을 가지고 있는 요소이다 데이터 값을 가지고 동(state) .

작하는 요소는 모두 조합 논리로 되어 있으며 출력은 현재 입력에 의존한다(combinational) , .

같은 입력이 주어졌을 경우 조합 요소는 항상 같은 결과를 출력한다 이 요소는 내부적인.

저장소를 가지고 있지 않다 가 대표적인 이 요소라고 할 수 있다. ALU .

또 다른 하나의 요소는 조합적이지 않고 대신 상태를 포함한다 내부적인 저장소를 가지고, .

있다면 그것은 상태를 가지고 있다고 볼 수 있다 이와 같은 요소를 상태 요소. (state

라고 부른다 만약 머신에 플러그 를 보내면 값을 저장하고 있는 상태 요소를elements) . (plug)

로드 할 수 있으며 상태 요소가 저장된다면 다음 플러그가 들어오기 전까지는 그 안의 값,

의 변화는 없다 명령어 메모리나 데이터 메모리 레지스터 따위가 상태 요소의 예이다. , .

Page 68: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 68 -

상태 요소는 적어도 두 개의 입력과 하나의 출력을 가지고 있다 필요한 입력은 저장될 데.

이터 값과 그 값이 언제 저장되는지를 결정하는 클럭으로 되어 있다 출력은 전 클럭에서.

출력된 값을 제공한다 클럭은 단지 상태 요소를 저장할 때를 결정하는데 이용하며 그때. ,

상태 요소는 로드 할 수도 있다 클럭의 경우 조합논리에서는 한 클럭 사이클에 동작이 가.

능하다 이 경우에 모든 신호는 상태 요소 에서 조합 논리로 가는데 한 사이클이 필요하. 1

며 또한 상태 로 전달되는데 한 사이클이 필요하다 신호가 상태 에 이르는 클럭 사이클, 2 . 2

의 길이가 필요한 시간이라 할 수 있다.

또한 신호가 상태 에서 조합 논리를 거쳐 상태 로 가는데 여러 사이클이 필요한 경우도1 2

있다 이 경우에 두 번째 상태에서 저장을 제어하는 신호는 내부 저장이 매 사이클마다 갱.

신되지 않도록 제어해야 한다.

모든 상태와 조합 논리 요소들은 입력과 출력으로 비트 비트를 가지고 있다 프32 , 64 . RISC

로세서가 처리하는 데이터 량은 비트이며 자르기 를 통해 비트 데이터 또한 처64 , (zapper) 32

리가 가능하도록 설계되었다 구현은 실제에 가깝도록 다중 클럭 사이클을 사용하고 있으며. ,

따라서 다소 복잡한 제어 구조를 가지고 있다.

데이터 패스3.

데이터패스 설계를 시작하기 위한 합리적인 방법은 각 명령어 형태별로 주요성분들을 조사

하는 것이다.

우리가 필요로 하는 첫 번째 요소는 프로그램 명령어를 저장할 곳이다 상태 요소가 있는.

메모리 장치는 명령어를 제공하는 번지를 만들어 내는데 이용된다 명령어의 번지는 라. PC

는 상태 요소 내에 저장되어 있으며 다음 명령어의 번지를 구하기 위해 값을 증가시키, PC

는 덧셈기를 필요로 한다.

먼저 포맷인 명령어를 고려해 보자 그것들은 모두 두 개의 레지스터 값을 읽으며 레지R- . ,

스터 내용을 가지고 동작을 한다 또한 그 결과를 레지스터에 저장한다ALU . .

Page 69: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 69 -

따라서 우리는 이와 같은 명령어를 형 명령어 혹은 연산 논리 명령어라고 부른다 이러R- .

한 명령어에는 등이 있다 이러한 명령어의 전형‘ADD, CMP, MUL, SUB, AND, BIC, XOR .

적인 포맷은 와 같은 형태를 가지고 있다 이 프로세서의 개 레지스터ADDQ Rl, R2, R3 . 32

는 레지스터 파일 이라고 하는 블럭 내에 저장되어 있다 즉 레지스터 파일은(register file) . ,

레지스터들의 집합이라 할 수 있다.

형 명령어는 세 개의 레지스터를 필요로 하기 때문에 각 명령어에 대해 두개의 레지스터R-

값을 읽고 하나의 레지스터를 쓰기 위해 접속해야 한다 각 데이터를 레지스터에서 가져오, .

기 위해서는 읽어져야 할 레지스터 번호를 가지고 있는 입력 값이 들어가야 하며 그 값을,

이행할 출력 레지스터 번호 또한 입력으로 들어가야 한다 데이터를 레지스터에 쓰기 위해.

서는 두 개의 입력이 필요하다 하나는 쓰기가 될 레지스터 번호를 명시해야 하며 또 하나. ,

는 레지스터에 저장될 데이터를 제공하는 입력이다 그래서 모두 개의 입력과 개의 출력. 4 2

이 필요하다 레지스터 수는 비트 필드를 가지고 있으며 따라서 에서 까지 번호를 갖는. 5 , 0 31

다 반면 데이터 출력은 각각 비트 폭을 가지고 있다 는 비트 입력과 비트 결과. 64 . ALU 64 64

를 발생한다.

형 명령어를 구현한 데이터패스는 그림 처럼 레지스터 파일과 를 이용한다 레지R- 5.1 ALU .

스터 번호는 명령어 필드에서 발생하며 그 필드는 레지스터 입력과 연결되어 있다, .

Fig.5.1 Register file & ALU

Page 70: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 70 -

다음은 의 명령어에 대해 살펴보자 일반적인 포맷은CN-RISC load, store . LDA Ra, disp(

형태이다 이러한 명령어는 기저 레지스터 에 변위 를Rb ) . (base register, Rb) (displacement)

더함으로써 메모리 번지를 계산한다 이 명령어가 저장 명령어일 경우 저장될 값 또한 레지.

스터 파일 로부터 출력된다 만약 로드 명령어일 경우 메모리로부터 읽혀진 값은 라고Ra . Ra

명시된 레지스터 파일로 저장된다 따라서 위의 명령을 수행하기 위해서는 레지스터 파일과.

가 필요하다 또한 명령어 내에 있는 변위 필드를 비트 값으로 부호 확장ALU . 64 (sign

을 할 수 있는 장치가 필요하다 데이터 캐쉬는 저장 명령어에서 쓰기 동작을 하extension) .

며 따라서 입력과 출력 제어 신호를 가지고 있어야 하며 데이터가 캐쉬에 써질 수 있도록, ,

하는 입력도 가져야 한다 그림 는 명령어가 이미 패치 된 후 로드나 저장 명령어를 수. 5.2

행하기 위한 데이터패스를 만들기 위한 각 요소들을 조합해 놓은 것이다 레지스터 파일 내.

레지스터 수는 명령어 필드를 통해 알 수 있으며 변위 값 또한 필드를 통해 알 수 있다, .

분기 명령은 두 개의 오퍼랜드를 가지고 있다 여기서 제안한 분기 명령은 모두 조건 비교.

를 과 하기 때문에 하나의 레지스터만 있으면 된다 또한 비트의 변위는 분기 목표 번지0 . 21

를 계산하는데 사용이 된다 분기 명령을 구현하기 위해서는 먼저 에 명령어의 부호확장. PC

변위 필드를 더함으로써 분기 목적 번지를 계산한다.

분기 목표 번지를 계산할 때는 다음 명령어가 분기 목표 번지에 있는 명령어인지 아니면 순

차적으로 오는 명령어인지를 구별해야 한다 조건이 사실이면 분기목표 번지기 새로운. PC

가 되고 이때 분기가 되었다고 한다 만약 오퍼랜드가 조건에 맞지 않으면 증가된, taken .

가 새로운 값으로 대체된다 이 경우는 분기가 되었다고 한다PC PC . not taken .

따라서 분기는 두 가지 동작을 해야 한다 먼저 분기 목표 번지를 계산하고 레지스터 내용.

을 비교한다 분기 목표 번지를 계산하기 위해서 부호 확장 장치를 사용한다 비교를 실행하. .

기 위해서는 레지스터 파일을 이용할 필요가 있다 게다가 위와 같은 비교는 를 이용해. ALU

서 설계할 수 있다 는 그 결과가 인지를 가르쳐 주는 출력 신호를 내보낸다. ALU 0 .

Page 71: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 71 -

따라서 뺄셈을 하기 위한 제어를 할 수도 있다 만약 신호가 에서 나온다면 두 값. zero ALU

이 같음을 알 수 있다 결과가 이어도 신호는 을 발생시키지만 우리는 항상 분기의. 0 zero 0

같음을 비교하는 신호로 이용한다.

점프 명령어는 레지스터의 값을 비트 왼쪽으로 이동한 비트 값을 비트 왼쪽으로 이동한2 64 2

값으로 대체하는 동작을 한다 이 이동은 단지 점프 레지스터 값을 와 시킨 형태이다. 00 and .

Fig.5.2 R-type datapath

Page 72: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 72 -

구현과 제어 신호4,

여기에서는 제안한 를 간단히 구현해 보고 데이터패스에 대한 어셈블을 통해 필요한RISC ,

제어 신호를 간단히 만들어 본다.

가장 간단한 데이터패스는 한 클럭에 모든 명령어를 수행하는 것이다 이것은 데이타패스.

원천을 한 명령어당 한 번 이상 사용할 수 없으며 한 번 이상 필요한 요소에 대해서는 복,

제되어야 한다는 것을 의미한다 따라서 명령어와 데이터에 대한 각각의 메모리가 필요하게.

된다 전 섹션의 개별 데이터패스가 조합될 때 어떤 기능적 단위는 복제되기도 하고 이러한. ,

요소의 대부분을 다른 명령어흐름들이 공유하고 있다 두 개의 다른 명령어 형태들 사이에.

데이터패스 요소를 공유하기 위해서는 그 요소에 대한 다중 연결이 필요하며 입력들 사이,

에 적당한 제어 신호가 선택되어야 한다 이와 같은 동작은 주로 다중기 를 통. (multiplexor)

해 가능하다.

그림 은 데이터패스의 명령어 패치 부분부터 명령어와 메모리 명령어의 대략적인 데5.3 ALU

이터패스를 나타내고 있다 이 그림에서 데이터패스는 명령어와 데이터 대한 각각의 저장.

장소를 가지고 있다 여기에서는 를 증가시키기 위해 덧셈기가 필요하며 또 다른 는. PC , ALU

같은 클럭 사이클에 명령어를 수행하는데 이용된다 분기 명령어는 레지스터 오퍼랜드의 비.

교를 하기 위해 를 이용하고 있으며 분기 목표 번지를 계산하기 위한 덧셈기도 필요하ALU ,

다 또한 값 내에 저장될 값은 분기 목표 번지이거나 순차적으로 실행될 명령어 번지로. PC

서 번지를 선택하기 위해 추가적으로 다중기가 필요하다, .

Page 73: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 73 -

Fig.5.3 A general datapath

Page 74: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 74 -

제어4.l ALU

는 세 개의 제어 입력을 가지고 있다 는 비트의 기능 필드를 가지고ALU . ALU 7 (function)

각 명령어 형태를 구별해 낸다.

우리는 일반적으로 명령어의 기능 필드와 동작 코드를 통해 제어 신호를 만들어 내며ALU ,

이것을 통한 작은 제어 단위를 설계할 수 있다 신호는 를 제어하는 장치를 구. ALUop ALU

동시키는 신호로서 명령에 대해서는 분기 명령에 대해서는 기능 필드load/store 00, 10, 11,

를 통한 동작 명령어들은 이다 제어 장치의 출력은 각 를 동작시킬 수 있는01 . ALU ALU

제어 신호를 발생시킨다.

위와 같이 비트를 가지고 각 형태의 명령어군을 구별해 낼 수 있으며 이는 디코드 단계에2 ,

서 명령어에 대한 필요한 대략적인 정보를 알 수 있음을 의미한다 또한 시스템을 설계할.

때에도 구현이 더 쉬워진다 왜냐하면 블럭을 만들기가 쉽고 각 형태의 명령어들을 묶어서. ,

구조화할 수 있기 때문이다.

주 제어 장치 설계4.2

전체 제어 장치를 설계하기 위해서는 데이터패스에 대한 명령어가 어떻게 수행 되는 지를

알아야 하며 각 명령어 형태의 포맷을 검토해 보는 것이 효율적이다 우리가 제어 신호를, .

알기 위해 먼저 살펴보아야 할 것은 명령어 포맷이다.

동작코드는 항상 비트에서 나타낸다 기능 필드로는 비트를 이용한다. 31-26 . l1-5 .

읽기 전용의 두 레지스터는 항상 와 로 나타내며 필드 위치에 명시된다. Ra Rb , 20-16, 4-0 .

이 포맷은 분기 형 명령어 모두에 해당하며 에 대해서는 가 읽기 전용이며, R- , load/store Rb ,

는 쓰기 전용이다Ra .

에 대한 기저 레지스터는 항상 에 위치한다. load/store 25-21(Ra) .

메모리 명령 포맷의 변위는 필드에 위치하고 분기 명령 포맷의 변위는 필드에. 15-0 , 20-0

위치한다.

쓰기 전용 레지스터는 의 경우 필드에서 이루어지며 반면 형 명령어는. load 25-21 , R- 4-0

필드에서 이루어진다 따라서 다중기를 통해 쓰기용 레지스터를 선택.

Page 75: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 75 -

Fig.5.4 Control signal & Datapath

Page 76: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 76 -

먼저 형 명령어를 살펴보자 크게 형 명령어는 단계를 거쳐 수행된다 실제 시스템의R- . R- 4 . (

파이프라인을 고려하면 단계를 거쳐 명령어가 수행된다 여기에서 이야기하는 단계는 개략7 .

적인 명령어의 데이터패스 흐름만을 고려한 것이다.)

가 명령어 캐쉬에서 명령어를 패치 하고 를 증가시킨다. , PC .

나 레지스터 파일에서 읽기 전용 레지스터 두 개의 내용을 가져온다. .

다 는 기능 코드에 따라 입력된 두 데이터를 동작시키고 값을 발생시킨다. ALU , ALU .

라 에서 나온 결과는 다시 레지스터 파일에 써진다. ALU .

명령어에 대한 동작은 단계를 거쳐 이루어진다load 5 .

가 명령어 캐쉬에서 명령어를 패치 하고 를 증가시킨다. , PC .

나 레지스터 파일에서 레지스터 값을 가져온다. .

다 는 레지스터 파일에서 읽어 온 값과 변위 값을 더한다. ALU .

라 합은 데이터 캐쉬의 번지를 발생시킨다. ALU .

마 데이터 캐쉬나 레지스터 파일에 나온 결과를 저장한다. .

분기 명령어에 대한 동작은 단계를 거쳐 이루어진다4 .

가 명령어 캐쉬에서 명령어를 패치 하고 를 증가시킨다. , PC .

나 레지스터 파일에서 레지스터 값을 가져온다. .

다 레지스터 파일에서 읽어 온 데이터 값과 과 비교하여 조건 여부를 판단한다 증가된. 0 .

값을 명령어의 변위에 더한다 그 결과가 분기 목표 번지가 된다PC . .

라 의 결과를 통해 에 저장될 결과를 결정할 수 있다. ALU zero PC .

간단한 제어 기능을 갖는 장치를 설계하는 것은 그리 어렵지 않다 그러나 비트 동작 필. 32

드를 이용하는 시스템을 설계할 경우 엄청나게 많은 제어 신호를 판단하고 만들어 내야 한

다 또한 게이트 수도 더 많아져서 제어 신호는 그에 따라 더욱 증가하게 된다 따라서 다. .

소 쉽게 제어 신호를 만들어 내는 방법으로는 등을 이PLA(Programmable Logic Array)

용하는 것이 편리하다.

Page 77: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 77 -

는 제어 기능을 구현하는데 가장 많이 쓰는 방법 중에 하나이다 결국 전 시스템이 완PLA .

전한 시뮬레이션 단계를 거치지 않는 상황에서 제어 신호를 모두 잡는다는 것은 불가능한

일이며 각 명령어에 대한 검증 과정과 더불어 제어 신호를 만들어 내는 작업이 되어야 할,

것이다.

Page 78: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 78 -

제 절 파이프라인2

파이프라인 단계1.

우리는 명령어를 에 저장할 필요가 있다 왜냐하면 그 값을 출력하IR(Instruction Register) .

는 메모리와 같은 기능 장치가 그 출력을 계속해서 바꾸어 가면서 출력하며 그 이후에 우,

리는 명령어의 모든 필드를 이용하게 된다 반면에 가 형 명령어로 사용될 때 우리. ALU R-

는 그 출력을 저장할 필요가 없다 이것은 의 출력이 안정해서 레지스터 파일 내에 쓰. ALU

기 동작일 때에도 클럭 사이클동안 바뀌지 않기 때문이다 출력은 입력이 레지. ALU ALU

스터 파일로부터 오기 때문에 안정하며 레지스터 파일 출력은 의 로 결정되기, IR Ra, Rb, Rc

때문에 또한 안정하다고 할 수 있다 이 모든 것들은 한 명령어를 수행할 때마다 한 번씩.

쓰기 작업을 한다 따라서 와 레지스터 파일을 함께 묶을 수 있는 한 블럭의 조합 논리. ALU

를 생각할 수 있다 이러한 구조는 단일 사이클 구현이라고 볼 수 있으며 매 클럭마다 한. ,

번씩 쓰기 작업이 되어야 한다.

클럭 사이클로 수행되는 동작들에 대한 우리의 목표는 각 사이클에서 행해지는 작업 양의

균형을 맞추어야 하며 각 클럭 사이클의 시간을 줄이는 것이다 실행동작은 크게 단계로, . 5

나눌 수 있으며 세부 사이클은 단계라고 할 수 있다 왜냐하면 연산 논리 실행에서는 이동, 7 .

과 연산을 함께 해야 할 경우가 있으므로 두 사이클을 필요로 하며 분기 예측을 할 경우에,

도 한 사이클이 필요하기 때문이다 부동 소수점 연산에 대한 동작은 뒷절에서 따로 기술할.

것이다.

각 단계들은 한 사이클에 수행되어야 하며 그 길이도 균형을 맞추어야 한다 예를 들어 각, .

단계들은 대부분 동작을 포함하고 있으며 한 번 이상의 레지스터 파일 접속을 한다ALU , .

또한 한 번의 메모리 접속도 하고 있다 따라서 이와 같은 블럭을 통과하는 데이터패스의.

길이와 시간을 줄이는 것이 시스템 클럭을 줄일 수 있는 관건이라 할 수 있다.

Page 79: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 79 -

단일 사이클로 동작하는 명령어들은 각각의 동작을 수행하기 위해 여러 데이터패스를 거치

게 된다 많은 데이터패스 요소들은 연속적으로 동작하며 다른 요소의 출력을 입력으로 사. ,

용하기도 한다 그러나 어떤 데이터패스 요소는 병렬로 동작한다 예를 들어 를 증가시키. . PC

고 동시에 명령어를 읽는다 다시 말해서 각 단계에 묘사된 모든 동작이 한 사이클에 이루, .

어진다 파이프라인은 다음과 같은 단계로 이루어진다. .

명령어 패치 단계1.1 :

캐쉬에서 명령어를 패치하고 를 증가시킨다PC .

IR=Memory[PC]:

를 번지로 해서 메모리에 보내고 읽기를 수행하며 로 명령어를 가져온다PC , , IR .

이 단계를 수행하기 위해서는 등의 제어 신호가 필요하다MemRead, IRWrite .

분기 예측 단계1.2 :

이 시스템의 명령어는 조건코드를 가지고 있지 않다 또한 를 계산한 후 그 값을 레지스. PC

터에 저장하기 때문에 레지스터를 테스트해 봄으로써 조건여부의 적중 여부를 알 수 있다.

분기 예측에 대한 설명은 후술한다.

명령어 해석 단계1.3 (decode) :

전 단계까지 해서는 무슨 명령어인지를 알 수 없다 따라서 모든 명령어에 적용될 수 있는.

명령어 패치와 같은 동작만을 수행한다 이 단계에서는 제어 신호등을 만들어 내기 위한 디.

코딩 작업이 이루어진다 또한 이 명령어를 어떤 블럭의 기능 장치로 보낼 것인지를 결정하.

게 된다.

레지스터 패치 단계1.4 :

레지스터 파일을 접속해서 각 필드에 대한 레지스터 값을 읽는다 여기에서는 각 레지스터.

들간에 발생할 수 있는 충돌에 대비한 탐색 작업을 하게 된다 또한 명령어에. load/store

대비한 변위의 부호확장 동작이 이루어진다.

Page 80: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 80 -

실행 캐쉬 번지 계산 단계1.4 , :

데이터패스가 명령어 형태에 맞게 동작하는 첫 번째 사이클이다 이 경우에 는 전 단계. ALU

에서 준비된 오퍼랜드에 맞게 동작하게 된다 입력은 안정하기 때문에 이 값은 레지스. ALU

터에 저장할 필요는 없다 또한 결과를 데이터 캐쉬에 저장하기 위한 번지를 계산한다 속. .

도의 증가를 위해 연산 논리 와 별개의 를 사용한다 이 단계는 쉬프트와 연산논ALU ALU .

리 계산 곱셈 등이 이루어지므로 두 사이클 정도를 필요로 한다, , .

메모리 접속 단계1.6 :

이 단계에서는 명령어가 데이터 캐쉬 메모리를 접속해야 한다 만약 명령어load/store . load

일 경우 메모리에서 데이터를 가져온다 저장 명령어일 경우는 메모리에 쓰기 작업을 한다. .

단계1.7 write-back :

메모리에서 레지스터로 데이터를 로드 한다 여기에서는 와. MemtoReg RegWrite, RegDst

등의 제어 신호가 동작한다.

파이프라인 구현2.

소개2.1

파이프라인은 실행 단계에서 여러 명령어가 겹치게 하는 구현 기술이다 오늘날 빠른 시스.

템을 설계하기 위한 기술이라고 할 수 있다.

파이프라인은 일관작업 과 비슷하다 양쪽 모두 각 단계는 전체 일의 일부(Assembly Line) .

분의 조각으로 이루어진다 그 작업선에서 일하는 노동자들은 의자덮개 따위를 씌우는 등의.

작은 일을 수행한다.

Page 81: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 81 -

일관직업의 힘은 바로 작은 일을 여러 사람이 반복적인 동작을 통해 빠르게 수행하는 것이

다 따라서 새로운 상품은 여러 단계를 거쳐 상품으로 나오게 된다. .

일관작업처럼 파이프라인은 각 명령어 수행 작업을 여러 조각으로 나눈다 각각은 전체 소.

요되는 시간의 부분을 할당받는다 각각의 단계를 파이프 단계라고 하며 파이프 세그먼트. ,

라고도 한다 파이프라인은 한 명령어가 완전 수행을 하기 위한 시간을 줄이는 것이 아니라.

단일 사이클에 더 많은 명령어를 수행할 수 있도록 하는 환경을 제공하는 것이다 즉 수행. ,

시간 보다는 일 처리량 을 증진시키는 것이 파이프라인의 목적(execution tome) (throughput)

이다 또한 모든 파이프단계는 동시에 처리될 수 있도록 준비가 되어 있어야 하며 따라서. ,

파이프라인 안으로 명령어가 나가는 율은 들어오는 율을 넘어서는 안된다 한 명령어를 한.

단계 아래로 보내는 데 걸리는 시간을 클럭 사이클이라고 한다 이 클럭 사이클의 길이는.

가장 느린 파이프 단계에서 필요한 시간으로 결정된다 왜냐하면 모든 단계는 같은 전송율.

로 진행되기 때문이다.

설계자의 목표는 명령어 파이프라인이 각 단계의 길이가 균형이 맞도록 하는 것이다 그렇.

지 않으면 단계 사이에 무위 시간 이 있게 된다(idle time) .

파이프라인 데이터패스2.2

명령어를 파이프라인으로 처리할 때 생기는 각 파이프 단계의 이름은 다음과 같다.

명령어 패치. IF :

분기 예측. BR :

명령어 해석. ID0 :

명령어 해석과 레지스터 읽기. ID1 :

명령어 수행과 유효 번지 계산. EX :

메모리 접속. MEM:

라이트 백. WB :

Page 82: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 82 -

그림 는 단일 사이클 데이터패스를 나타내고 있다5.5 .

Fig.5.5 A single cycle datapath

Page 83: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 83 -

명령어와 데이터는 일반적으로 왼쪽에서 오른쪽으로 이동한다 그러나 두 가지의 예외가 있.

다.

라이트 백 단계로 결과를 레지스터 파일 내에 저장해야 한다. , .

의 다음 값을 계산할 때 분기를 예측하기 위한 경로를 따라 가야 한다. PC .

오른쪽에서 왼쪽으로 진행하는 데이터의 흐름은 명령어의 흐름에 영향을 주지 않는다 또한.

위의 그림은 파이프라인 레지스터를 가지고 있다 각각의 이름은 두 단계에서 사용하기 때.

문에 양쪽 단계의 이름을 함께 붙인다 다음 명령어 패치와 라이트 백 사이엔 파이프라인.

레지스터가 없다.

또한 정수 단위와 부동 소수점 단위는 전체적인 알고리즘은 비슷하다 부동 소수점 단위에.

서는 부동 소수점 전용 레지스터 파일을 가지고 있으며 곱셈기 나누기를 따로 가지, ALU, ,

고 있으며 명령어 캐쉬나 데이터 캐쉬는 제어 장치에서 제어를 통해 정수 단위와 부동 소,

수점 단위를 구분하여 각 단위로 데이터를 전송한다 실제 부동 소수점에서는 곱셈이 사이. 2

클에 걸쳐 이루어지게 되며 전체적으로는 단계의 파이프라인을 하게 된다 부동 소수점 단, 9 .

위 역시 바이패싱 단위를 사용하여 오퍼랜드를 바이 패스 할 수 있다.

파이프라인 제어2.3

파이프라인 제어를 나타내기 위해서 우리는 단지 각 파이프라인 단계동안 단지제어 값만을

셑팅 하면 된다 왜냐하면 각 제어 회선은 단지 단일 파이프라인 단계에서 활성화되기 때문.

이다 따라서 우리는 제어 회선을 파이프라인 단계에 따라 나누어진다. .

가 명령어 패치 명령어 메모리에서 데이터를 읽고 값을 새로 갱신하기 위한 제어 신호. : , PC

가 필요하다 그 외에 어떤 특별한 신호는 없다. .

나 분기 예측. : 분기 제어 장치를 구동시킬 수 있는 신호와 번지를 계산할 수 있는 구ALU

동 신호가 필요하다 또한 조건 분기를 알아낼 수 있는 신호가 필요하며 레지스터 값을 가. ,

져오거나 레지스터에 저장할 수 있도록 제어 신호가 발생되어야 한다.

Page 84: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 84 -

다 명령어 해석과 레지스터 패치 앞 절에서 언급한 제어 신호와 같다. :

라 실행 단계 등의 신호가 필요하다 부호확장을 위한 신호도. : RegDst, ALUop, ALUSrc .

필요하다.

마 메모리 단계 등의 신호가 필요하다. : Branch, MemRead, MemWrite .

바 라이트 백 등의 신호가 필요하다. : MemtoReg, RegWrite .

데이터 장애2.4

만약 다음과 같은 명령어들이 수행된다고 하자.

SUBQ R3, R2, R1

AND R5, Rl, R12

OR Rl, R6, R13

ADDQ R1, Rl, R14

위와 같은 순차는 어떻게 파이프라인이 될까 그림 을 보자? 5.6 .

이 그림은 레지스터 에서 읽어진 값이 클럭 사이클 에서 읽기 동작이 이루어지지 않으R1 8

면 동작이 이루어지고 난 후의 결과를 이용하지 못할 것이다 만약 동작 실행 전 값SUBQ .

이 이고 실행이후의 값이 이 된다면 는 정확하지 못한 값인 을 오10 -20 AND, OR, ADDQ 10

퍼랜드로 이용하게 될 것이다.

위와 같은 의존성을 데이터 장애 라고 한다 위와 같은 문제는 고성능 파이프(data hazards) .

라인 시스템을 설계하는데 장애 요인이 되고 있다.

데이터 장애 제어2.5 : Bypassing

프로그램을 컴파일 할 때 데이터 장애 등을 고려하여 명령어와 명령어 사이에 묶음 명령어

등을 끼워 넣을 경우 확실한 명령어 수행을 보장받을 수 있으나 성능이 많이 떨어진다 읽.

기와 쓰기가 같은 레지스터에서 이루어질 경우 쓰기가 된 레지스터 값을 직접 다음 명령어

의 레지스터 결과로 보낼 수 있다면 될 것이다 그림 은 파이프라인 레지스터 사이의 데. 5.7

이터 종속을 보여주고 있으며 같은 코드를 사용하는 다른 레지스터 결과치로 앞 명령어의,

실행 결과를 직접 보내고 있다.

Page 85: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 85 -

만약 우리가 파이프라인 레지스터로부터 의 입력을 가져온다면 파이프라인은 묶음 단ALU

계 없이도 진행시킬 수 있다 레지스터가 써지기를 기다리지 않고 일시적인 결과를 이용하.

는 이와 같은 기술을 바이패싱이라고 한다 의 입력에 다중기를 부착하고 장애 탐색. ALU ,

장치와 비슷한 제어 신호를 제공한다 따라서 우리는 이와 같은 데이터 장애 요인 앞에서도.

충분한 속도를 낼 수 있는 파이프라인 시스템을 설계할 수 있다.

바이패스 제어는 실행 단계에서 이루어져야 할 것이다 왜냐하면 파이패스 다중기(EX) . ALU

가 이 단계에서만 필요하며 파이프라인 레지스터를 통한 단계로부터 레지스터 번, ID/EX ID

호를 전달받는다.

장애를 일으키는 곳은 실행과 메모리 단계이며 라이트 백 장애는 발생하지 않는다 단계, . ID

내의 명령어가 단계내의 명령어가 발생시킨 같은 레지스터를 읽는다면 레지스터 파일이WB

정확한 결과를 제공할 수 있기 때문이다.

그러나 로드 명령어의 경우 같은 레지스터에 쓰기 동작을 할 경우 다시 문제는 발생한다.

그림 이 그 예이다 이 데이터는 가 다음 명령어에 대해 동작하는 반면에 여전히 메5.8 . ALU

모리로부터 데이터를 읽게 된다 이 경우에 다음 명령어는 메모리의 결과가 나올 때까지 기.

다려서 다음 동작을 실행해야 한다 따라서 묶음 단계가 필요하게 된다 따라서 장애 탐색. .

장치 를 사용해야 한다 그러나 로드 명령어의 목표 오퍼랜드를 레지(Hazard Detection Unit) .

스터로 해 두면 위와 같은 문제를 해결할 수 있다 따라서 저장 명령어와 함께 사용할 수.

있는 장점을 가지고 있다 저장 명령어의 경우 가상 번지는 레지스터에서 가져오기 때문에.

이 명령어 또한 파이프라인을 통해 충분히 구현 가능하다.

Page 86: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 86 -

Fig.5.7 Bypassing

Fig.5.6 Data hazard

Page 87: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 87 -

Fig.5.8 Load hazard

Page 88: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 88 -

분기 장애2.6

실행 단계가 끝날 매 그 의 결과를 가지고 조건 분기 여부를 결정할 수 있으므로 메모ALU ,

리를 참조하지 않더라도 분기는 가능하다 따라서 언제나 분기 명령 전에는 덧셈이 강제되.

어야 한다 또한 분기 예측 루틴을 쓰고 있기 때문에 무위 사이클이 발생할 확률은 일. (idle)

반 파이프라인보다도 훨씬 줄어든다고 할 수 있다.

이러한 분기 명령을 실행시키는데 한 가지 어려운 점은 수정 코드의 호환성을 유지하는 것

이다 호환성을 유지하기 위해서는 일단 수취한 분기 명령의 실행에 이어서 하나의 명령이.

수정될 때에는 후속 되는 수정된 명령의 실행은 갱신된 값을 사용해야 한다 이것은 데이터.

저장과 명령 패칭 강의 의존성의 특수 형태이다 따라서 는 이전 명령이 완전히 저장되. CPU

기 전에 수취된 분기의 목표 번지를 패칭 해 내며 파이프라인에서 그러한 상황을 점검하며,

필요할 때에는 부정확하게 패칭 된 명령을 지운다 는 분기 목적 번지로 입력된 값이. CPU

수정될 경우 철저하게 예측된 분기와 대조를 한다 외부 메모리와의 일관성을 유지하기 위.

해 사용된 같은 메커니즘을 통해 각 캐쉬간의 일관성이 유지될 수 있다.

Page 89: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 89 -

제 절 캐쉬3 (Cache)

가상 메모리1. (virtual memory)

가상 메모리는 적어도 두 단계 이상의 단계적인 저장 시스템을 갖는다 그 저장시스템은 주.

로 에 의해 처리되고 있다 가상 메모리를 사용하는 이유는 다음과OS(Operating System) .

같다.

프로그래머들이 저장 장소를 할당하는데 더 쉽게 하기 위함이며 다른 사용자들이 메모리. ,

공간을 효과적으로 공유할 수 있도록 하는 것이다.

프로그램이 수행되는 동안 메모리 시스템의 성능이나 구성에 상관없이 실행되도록 하기.

위한 것이다.

메모리를 이용할 때 비트당 낮은 비용과 높은 접속율을 이루기 위한 것이다. .

대부분의 가상 메모리 시스템은 주메모리와 보조메모리로 된 두 단계의 메모리구성을 하고

있다 세 단계일 경우는 캐쉬 메모리를 추가한다 일반 사용자들이 고급 언어를 사용하여 프. .

로그램을 짤 때 거의 대부분이 가상 메모리 시스템의 내용을 보고 있는 것이다.

메모리 단계1.1

전형적인 메모리 시스템의 여러 장치는 메모리 가 단계적으로 이루어져(M1, M2, M3,....,Mn)

있다 일반적으로 어떤 시간에 에 저장된 정보는 또한 에 저장되어 있기도 하다. Mi-1 Mi .

와 다른 프로세서들은 첫 단계인 과 직접적으로 통신을 하며 은 와 직접적인CPU M1 , M1 M2

통신을 한다 비트당 비용을 접속 시간. Ci, tAi 저장능력을 라 하자 메모리 레벨들 사이의, Si .

관계는 다음과 같다.

Ci > Ci+1

tAi < tAi+1

Si > Si+1

Page 90: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 90 -

프로그램을 수행하는 동안 는 계속해서 논리적인 메모리 번지를 발생시킨다 어느 순간CPU .

이 가상 번지는 메모리 단계를 통해 어떤 형태로 분배된다 만약 가 이 아닌 에 번지가. i 1 Mi

할당된다면 그 번지는 가 직접 접속할 수 있는 메모리 단계로 에 맞게 재할당된다CPU M1 .

이와 같은 메모리 단계를 효과적으로 해내기 위해서 가 발생시키는 번지는 가능한 한CPU

에서 찾아야 한다 만약 에서 원하는 정보를 발견하지 못했을 경우 는 그 정보를M1 . M1 CPU

이용할 수 없으며 저장 장소가 적절히 재할당 될 때까지 프로그램 수행은 지연될 것이다, .

캐쉬 메모리1.2

일반적인 시스템에서 프로그램 실행 시간의 대부분을 소비할 때는 프로그램의 메모리를 참

조할 때이다 그래서 프로세서가 발생시키는 번지는 짧은 시간에 주메모리의 작은 영역을.

다발 로 처리하려는 경향이 있다 이와 같은 성질을 캐쉬 메모리 구조에서 이용하는(cluster) .

프로그램의 지역성 원리이다 캐쉬 메모리는 작지만 빠른 메모리이다 보통 주메모리의 배. ( 5

에서 배정도 빠르다 또한 캐쉬는 프로세서가 자주 사용하는 정보를 가지고 있으며 프10 ). ,

로세서는 주메모리 보다는 캐쉬 메모리를 우선적으로 접속한다 따라서 접속 속도를 증가시.

키기 위한 구조가 필요하다.

그림 는 캐쉬 메모리 구조를 보여준다 먼저 주메모리와 캐쉬를 각각 워드로 나눈5.9 . 2 =Nⁿ

다 이 블럭 크기는 프로그램 지역성과 주메모리 구조에 따라 달라진다 캐쉬의 크기는. . B X

으로 나타낼 수 있다 는 블럭의 크기를 나타낸다 이 시스템에서는 블럭당 바이트 워N . B . 8

드로 구성되며 블럭은 개로 나누어진다 따라서 캐쉬의 크기는 라 생각할 수 있다, 128 . 8K .

듀얼 이슈를 하기 위해 비트 데이터 영역은 비트씩 나뉘어져 명령어 캐쉬 밖으로 나오64 32

게 된다.

일반적으로 캐쉬 구조는 다음과 같은 세 가지 기능을 가지고 있다.

번지 해석 기능 참조 블럭이 캐쉬 내에 있는지 여부를 결정. (Address translation function):

하고 주메모리와 캐쉬 메모리 사이의 블럭 이동을 관장한다, .

Page 91: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 91 -

번지 맵핑 기능 캐쉬 내에 블럭 위치를 재조정한다. (Address mapping function): .

대체 알고리즘 캐쉬 미스 로 새로운 블럭을 공간에 채워 넣. (Replacement algorithm): (miss)

을 때 캐쉬내의 어떤 블럭을 대체할 것인지를 결정한다.

Fig.5.9 Cache Scheme

Page 92: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 92 -

main memory

Fig.5.10 Direct mapping

Page 93: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 93 -

그림 은 메모리 시스템의 직접 사상 구조를 나타내고 있다 캐쉬의 데5.10 (direct-mapping) .

이터 영역은 바이트씩 블럭을 가지고 있다 물리 번지의 블럭 필드는 비트이고 전체8 128 . 7 ,

캐쉬 메모리는 이기 때문이다8K .

메모리 크기 증대1.3 (size enhancement)

는CN-RISC 243 의 가상 번지 공간을 갖는다 번지 공간은 크기의 페이지로 구성bytes . 8K

되며 개의 구역으로 나눌 수 있다 그 중에서 두 구역은 기능에 사용되는 시스템 영, 4 . OS

역 에 쓰이며 나머지 둘은 사용자들이 프로그램을 하는데 이용하는 프로세스 영역SM , PM

으로 나눌 수 있다 은 어느 순간에 한 사용자들에게 할당되며 각 사용자들은 사용자의. PM ,

가상 페이지 번지를 물리 페이지 번지 로 해석해 내는 방식을 정physical page addresses)

의하는 메모리 맵이나 페이지 표 를 가지고 있다 그래서 시스템은 여러 사용자(page table) .

에게 페이지 표를 제공하고 있으며 에 저장된다, SM . TLB(Translation Lookaside Buffer)

는 고속의 가상 물리 번지 해석을 위해 엔트리를 가지고 있다- 1024 .

의 가상 번지의 포맷은 그림 과 같다CN-RISC 5.11 .

이 포맷은 비트의 가상 페이지 번지를 가지고 있으며 가상 번지 공간의 구역을 구별할28 ,

수 있는 비트 구별자를 가지고 있다 또한 가상 페이지 내 바이트의 번지를 묘사하기 위한2 .

오프셀이나 비트 변위 를 가지고 있다 가상 페이지 번지는 상응하는 페이13 (displacement) .

지 표 내에 비트 엔트리에 접속된다 이 포맷은 비트의 페이지 프레임 수인 물리 번지23 . 16

를 가지고 있다 그 다음에 이 물리 페이지 번지는 원하는 비트 물리 번지를 얻기 위해. 32

가상 페이지 번지를 대체시킨다 는. CN-RISC 243 바이트 보다 더 큰 가상 어드레스 공간을

가질 수 있다 실제시스템의 물리 메모리는. 243보다 더 작은 공간을 갖는다 또한. CN-RISC

에서는 문맥 레지스터 를 가지고 있다(context register) .

Page 94: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 94 -

문맥 레지스터의 내용은 비트의 새그먼트 수와 연속적으로 연결된다 이 비트는 세그13 . 16

먼트 표의 인덱스로 사용되며 페이지 표 포인터를 패치 하게 된다 그리고 나서 페이지 표, .

포인터는 비트의 가상 페이지 수와 연결되며 페이지 표로부터 페이지 인식자5 , (descriptor)

에 접속하는데 사용된다 페이지 표는 비트의 물리 페이지 수를 가지고 있다 이것은 가. 26 .

상 번지에서 나온 비트의 변위와 연결되어 비트의 물리 번지를 가져오게 된다13 41 .

페이지 표 엔트리는 페이지 수뿐만 아니라 보호 필드 통계 필드(protection field), (statistics

페이지형 필드 를 가지고 있다 각 필드는 다음과 같은 비트를 포함field), (page type field) .

하고 있다.

이 비트는 페이지가 유효한가를 판단한다 만약 유효하지 않으면 상응하는 페이지valid bit: .

에 접속은 페이지 장애 를 발생시킨다(fault) .

이 비트는 쓰기 동작의 허용 여부를 가르킨다write enable bit: .

이 비트는 프로세서가 슈퍼바이저 모드일 경우 사용자가 페이지에 접속할Supervisor bit:

수 없도록 한다.

이 비트는 가장 최근에 사용한 페이지를 가르킨다 페이지가 성공적Statistics field: (LRU).

으로 접속되었을 때 제어 장치는 각 페이지에 대해 라고 셑트 시킨다 만약 접속“accessed” .

이 쓰기이면 페이지에 대해 라고 셑트 한다 이 비트는 페이지 대체를 위해 사용“modified” .

을 한다 단지 수정 된 페이지만이 페이지 대체동안 여벌 저장소 로 전달된. " " (backing store)

다.

이 비트는 페이지가 존재하는 개의 물리 공간 중 어느 하나를 가르킨다 이 비Type bits: 4 .

트에 기초하여 주메모리 버스 버스 등 메모리 접속을 어디로 할 것인지를 알 수, I/O , VME

있다.

Page 95: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 95 -

Virtual address

Fig.5.11 Address translation

Page 96: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 96 -

제 절 분기4 (Branch unit)

고속 명령어 꺼내기 와 순차1. (fetching) (sequencing)

명령어를 꺼내는 과정에서는 크게 두 가지 기능을 수행한다.

명령어에 따른 계산 수행이 될 수 있도록 실행장치 로 보낸다. (execution unit) .

실행장치에서 만들어진 결정 사항에 따라 적절한 경로로 인도된다. .

고성능 프로세서에서는 단순한 명령어가 파이프라인 데이터 경로를 제어하기 때문에 위의

두 기능을 빠르게 처리하는 것이 중요하다 이 절에서는 하드웨어적으로 그것을 실현한다. .

여기에서 제안하는 여러 구조들은 명령어 캐쉬 를 중심에 두고 고려한 것이다 명령(I-cache) .

어 캐쉬는 고성능 프로세서를 실현하기 위한 필요한 구조중 하나이다 그 이유는 다음과 같.

다.

프로그램 내 루프가 발생했을 때 참고의 지역성 에 유리하다. (locality of reference) .

명령어 캐쉬는 읽기 전용이기 때문에 일반 캐쉬보다 훨씬 더 간단하다. .

의 데이터 메모리 포트와 구별되기 때문에 병렬로 명령어를 처리할 수 있다. CPU - .

명령어 캐쉬는 실행 프로그램에 따라 그 항목을 동적으로 적응시키. on-chip (dynamically)

기 때문에 마이크로코드 보다 실리콘 영역을 더 효과적으로 이용할 수 있다ROM .

원격 명령어 장치1.1 PC(remote-PC)

명령어를 꺼내는 과정은 계산 과정과는 독립적인 과정이다 이러한 독립성은 패치와 실행.

장치를 데이터 처리와 동작의 병렬성의 지역성에 따라 하드웨어적으로 구분하는 것이 바람

직함을 말해준다.

Page 97: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 97 -

그림 은 명령어 패취 순차 장치와 실행 장치사이의 통신 대역폭5.12 & (communication

을 최소화하는 구조이다 는 패치 순차 장치에 포함되기bandwidth) . PC(Program Counter) &

때문에 라는 이름을 갖는다 패취 순차 장치는 등의 제어‘remote-PC’ . & Jump, Call, Return -

전송 명령어를 수행한다 따라서 순차적인 명령어 수행에 있어 두 가지의(control-transfer) .

특성을 갖는다.

조건부 비조건부 순차 실행 장치에서 보내지는 조건부 명령어의 경우 두 가지의 경로 중. / : ,

하나를 선택한다 비조건부 순차의 경우는 단일 경로만이 가능하다. .

정적 동적 전송 대상 다음 수행되는 명령어의 주소는 컴파일할 때 통계적으로 알. / (Target):

수 있기 때문에 실행 장치 결과에 의존하지 않는다.

Fig.5.12 Remote-PC Scheme

Page 98: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 98 -

원격 명령어 장치와 실행 장치 사이의 평균적인 통신 대역폭은 명령어를 실행장치에 보PC

내는데 필요한 최소 대역폭보다 크지는 않다 왜냐하면 두 장치 사이에서는 주소를 빈번하.

게 전송하기 때문이다 동적인 대상을 갖는 제어 전송은 그렇게 자주 발생하지는 않는다 또. .

한 명령어는 실행 장치로 전송될 필요도 없다jump .

원격 를 성공적으로 구현하기 위해서는 값을 명령어 수행과정에서 가능한 한 적게 이PC PC

용해야 한다 원격 을 갖는 명령어 장치와 명령어 캐쉬가 있어야 성능면에서 더 나은 하. PC

드웨어를 구현해 낼 수 있다 내에는 원격 를 채용하고 있으며 명령어 캐쉬가. CN-RISC PC ,

설계될 것이다.

또한 제어 전송 명령어는 고성능의 프로세서를 설계하는 데에서는 중요하다 왜냐하면 아주.

빈번하게 발생을 하며 패치 실행 파이프라인을 블록화 하기 때문이다 이는 또한 분기와 비- .

교 를 하는 데 쓰이는 시간을 고려해볼 때 더욱 중요하다 할 수 있다(branch & compare) .

고속 구조1.2 Compare-and-Branch

그림 은 제안한 의 구조를 나타낸다 는 일반적5.13 risc(CN-RISC) compare-and-branch . (a)

인 분기 구조이며 평균적으로 비교 분기하는데 사이클이 걸린다 구조를 발전시키, & 2.5 . (a)

기 위한 두 가지의 특성이 있다 첫째는 분기가 있는지 없는지를 비교 결정하는 과정을 분. ,

기 대상 과 병렬로 계산하는 것이다 그러기 위해서는 가 두 개 필요하며, PC+offset . ALU ,

비교 분기하는데 사이클 정도 필요할 것이다 그러나 이와 같은 구조는 패치 순차 장치& l.5 . &

가 따로 분리되어 있을 때만이 가능하다 둘째 컴파일 할 때 분기 대상 번지를 알 수 있기. ,

때문에 분기를 계산할 때마다 번지를 재계산 해야 하는 번거로움이 필요 없다 명령어 캐쉬.

를 사용하면 대상 번지를 계산하는 데 명령어 패치 속도를 떨어뜨리지는 않는다.

그림 는 고속의 비교 분기 구조이다 이 구조는 위의 두 가지 특성을 이용하고 있으5.13(b) & .

며 단일 사이클에 비교 분기 명령어를 수행하게 될 것이다 그러나 대상 명령어의 패치가, & .

시작하기 전에 분기 여부를 결정하는데 충분한 시간이 없기 때문에 포트가 두개인 명령어

캐쉬를 사용하며 이것은 조건 분기에 의해 가능한 두 가지의 대상 번지 모두를 동시에 패,

취 하게 된다.

Page 99: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 99 -

Fig.5.13 Compare & Branch

Page 100: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 100 -

고속 분기를 위한 대상 번지1.3

대부분의 분기는 분기 그 자체에서 그리 멀지 않는 곳에 대상 번지를 가지고 있다 어떤 구.

조에서는 바이트내에 분기 대상의 가 있다고 보고되고 있으며 바이트 범위에128 55% , 16K

서는 대상의 가 있다고 한다 그림 는 제안한 고속분기 구조이다 이 구조의 핵심93% . 5.14 .

은 명령어가 그 자체를 가지고 있다기 보다는 조건 대상 번지offset (conditional target

의 개의 최하위 비트 를 포함하고 있다는 것이다 이러한 방법을 쓸 경우 분address) n (LSB) .

기 명령어라는 것을 아는 순간 비트 덧셈의 결과를 기다릴 필요 없이 명령어 캐쉬가 대상, n

의 패치를 시작할 수 있다 분기 명령어가 전체 번지를 가지고 있지 않다고 가정한다면 조.

건 대상 번지의 최상위 비트 들은 실행 시간에 계산이 되어야 한다 그러나 이러한 계(MSB) .

산은 캐쉬 접속과 병렬로 수행되기 때문에 번지 를 비교하는 시간에 그 결과를RAM tag

이용할 수 있다.

이 그림은 컴파일러가 조건 대상 번지의 부분의 계산을 위하여 들어온 정보의 비트를MS 2

다시 제공한다 그러나 의 비트에 그 두 비트를 더하는 대신에 의 에 더하도록. PC <n> PC MS

한다 이와 같은 경우 최악의 분기일 경우. -2n+1과 +2n 사이에서 이루어진다 의 경우는. (b)

와 유사하다 그것은 비트로 을 이용함으로써 최악의 분기일 경우(a) . round-off PC<n-1>

범위를 갖는다±1.5 X 2 .ⁿ

Fig.5.14 PC-relative

Page 101: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 101 -

그림 는 명령어 패치 순차 장치의 구역도표 이다 이 구조는5.15 & (block diagram) . two-port

명령어 캐쉬와 패추 순차 분기 구조를 가지고 있다 세 개의 레지스터& . (PC+1,PC+2,

는 증가된 값과 수행될 명령어를 각각 가지고 각 실행 사이클의 시Instruction Register) PC

작점에서 로드 된다 증가된 값은 두 개의 명령어 캐쉬의 한 포트의 번지로 사용되며 패. PC ,

치될 다음 명령어를 발생시킨다 동시에 분기명령어가 발생했을 경우 현재 명령어의 일정.

부분은 대상 번지를 결정하는데 사용된다 이와 같은 대상 번지는 명령어 캐쉬의 두번째 포.

트로 들어가게 되며 그 다음에 대상 명령어가 패치 된다 사이클이 끝날 때쯤 해서 실행, .

장치는 조건 분기인지를 결정하게 된다 이 결정에 따라 다중기 는 첫 번. IRMLX, PCMUX

째나 두번째 포트의 결과나 번지 증가기의 결과를 선택하고 나서 이나 레지스터를 로IR PC

드 하게 된다 또한 이 구조는 비조건 분기 수행도 할 수 있다 조건 분기와 명령어 거. . 1,2

리를 둔 비조건 명령어가 아닌 이상은 실행 장치의 시간 지연을 갖지 않는다 그렇지 않을.

경우는 사이클 정도의 실행 장치 지연을 동반한다1 .

통계적으로 모든 분기 명령어의 절반 가량이 비조건이며 전체 실행 명령어의 정도이다, 1/10 .

명령어 캐쉬는 비교 분기 명령어의 가능한 대상을 동시에 패치 하는데 이용된다two-port & .

즉 비교 분기 명령어와 다른 명령어가 수행될 때 명령어 캐쉬의 두 포트를 이용하는 것이&

다 위와 같은 다른 명령어가 수행될 때는 레지스터가 다음 두 명령 즉. PC+1, PC+2 Is1,

의 패치에 이용된다 가 비조건 분기이고 이 비조건도 조건도 아닌 명령어이면Is2 . Is2 , Is1 , Is1

은 정상적인 실행 장치로 들어가게 되며 의 대상 번지가 즉시 로드 된다 왜냐하면, Is2 . Is1

이 실행 장치에서 동작하고 있을 때 의 대상이 패치 되기 때문이다, Is2 .

비조건 분기는 조건 분기의 명령어 포맷과 다소 차이가 있다 이것은 고속 비교 분기 구조. &

의 기술처럼 할 필요 없이 바로 대상 번지를 가져오는 것이 가능하게 하기 위해서이다 비.

조건 분기는 비트의 명령어 코드와 비트 변위를 가지고 있다 대상 명령어와 그 다음6 21 .

명령어는 바이트 번지와 비트 변위를 이용하여 패치 된다 이러한 내용물들은 가 비조21 . Is2

건 분기임이 탐지됨과 동시에 레지스터에 들어오게 된다PC .

Page 102: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 102 -

Fig.5.15 Instruction fetch & sequence

Page 103: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 103 -

비조건 분기의 이러한 포맷은 비교 분기 명령어처럼 억제된 범위의 분기가 아닌 임의적인&

메모리 위치로 분기가 가능하게 해준다.

명령어는 다음 리턴 과정을 위해서 값을 저장해야 한다는 것만 제외하고는 비조건Call PC

분기와 같은 기능을 수행한다 만약 를 저장하는 곳이 레지스터라면 명령어는 비트. PC call 6

코드와 비트 변위 명령어 포맷과 동일하다고 할 수 있다21 .

고속 분기 구조에서 비교 형태1.4

그림 은 비교 분기 명령어용 시간 종속 그래프이다 문자5.16 & - (timing-dependencies) . A, B,

는 그림 에 있는 것과 같다 에서 명령어는 실행할 준비를 한다 비교 분기 명령어C 5.15 . A . &

가 실행 장치 상위 사이클 내에서 비교를 수행한다고 할 때 캐쉬 장치는 하위 사이클에서( )

다음의 두 명령어를 패치 한다 다음에 올 두 명령어의 는 점에서 이미 알고 있으. n LSB A

며 그래서 캐쉬 접속은 즉시 시작된다 여기서 비트는 캐쉬의 워드와 블럭을 계산하, RAM .( n

는데 충분한 비트라고 생각한다 캐쉬 접속은 조건 대상 번지를 계산하고 난 후의 부.) MS

분인 에서 마무리된다 에서 캐쉬 태그를 비교하기 시작하고 다음 명령어가 선택될 준비B . B ,

가 된 에서 끝나야 한다 동시에 에서 두 개의 증가시 는 유효 출력을 발생한다 같C . C INC .

은 점 에서 실행 장치는 분기인지 아닌지를 결정해야 한다 그리고 나서 다음 명령어를C , .

선택한다 비교 분기 명령어는 세 개의 레지스터 를 디코드하고 레지스터로부터. & ( A->D ) ,

데이터를 읽는다 그리고 나서는 그들을 비교하고 결정한다 이와 같( D -> E ). ( E -> C ).

은 비교는 뺄셈을 필요로 할 수도 있고 그렇지 않을 수도 있다 의 과정은, . E -> F ALU

동작 따위의 사이클을 필요로 하는 루프이다full .

또한 레지스터의 값과 과의 비교 따위도 가능하다 그러나 어느 것도 탐지를 위해 캐리가0 .

진행되는 따위는 발생하지 않는다 그것을 해결하는 방법은 에서 를 계산. ALU bitwise XOR

한 후 게이트를 이용한다 크기 비교도 과의 비교이므로 어렵지 않게 구precharged NOR . 0

현이 가능하다 그 외 임의적인 비교 따위는 모든 오퍼랜드를 레지스터에 저장하고 그것과.

과의 비교를 해봄으로써 비교가 가능하다0 .

Page 104: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 104 -

Fig.5.16 Timing dependencies

Page 105: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 105 -

제 절 부동 소수점 데이터패스5

부동 소수점 데이터패스는 그림 과 같다 실제 정수 단위와 그 구조는 비슷하며 단지5.17 . ,

실행 단계에서 나누기 가 추가된다 또한 부동 소수점 전용레지스터 파일을 가지고(Divider) .

있으며 캐쉬는 정수 단위와 공유한다 그 제어는 제어장치에서 듀얼 이슈에 대한 제어를 통, .

해 가능하도록 한다 부동 소수점 각 포맷에 대한 제어는 각각의 단위에 제어 신호가 입력.

되어 제어가 가능하도록 설계 될 것이다 곱셈기는 사이클에 걸쳐 실행이 가능할 것이다. 2 .

정수 단위에 대한 전체적인 데이터패스는 그림 과 같다 그림 과 비슷하며 레지스터5.l8 . 5.l7 ,

파일과 나누기 덧셈기 곱셈기 등은 각각 다른 단위에 있으며 나머지는 모두 공유한다 그, , , .

제어는 제어 장치를 통해 가능할 것이다.

Page 106: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 106 -

Fig.5.17 Floating point datapath

Page 107: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 107 -

Fig.5.18 Total datapath

Page 108: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 108 -

제 장 결론6

비트 프로세서 의 마이크로 구조 설계에 관한 연구를 하였다 비트 크64 VLSI CN-RISC . 32

기의 명령어 입력 단위 데이터 입출력 단위 캐쉬 단위 제어 단위 분기 예측 단위 등 몇, , , ,

가지 블럭으로 나누어 구조가 설계되었다 전체적인 연구 범위와 그 성과는 다음과 같다. .

여러 프로세서 연구1. RISC

명령어 제안2. RISC

프로세서 구조 제안3. RISC

설계* Address Generation Unit

설계* Data Arithmetic Logic Unit

설계* Floating-Point Arithmetic Unit

구조 설계* On-chip Cache

구조 설계* Branch prediction

파이프라인 설계*

본 보고서에서는 컴퓨터 구조의 중요성과 최근까지의 발전 동향을 알아보고 우리의 현실에,

맞는 프로세서 개발의 필요성을 제기하였다 또한 간단한 프로세서 구조를 제안하였으. RISC

며 앞으로 여러 시뮬레이션 툴을 이용하여 그 구조를 검증할 수 있을 것이다 또한 파이프, .

라인에 대한 연구가 계속 진행되어야 하며 제어 장치를 더 정밀하게 설계하는 것 또한 앞,

으로 할 일이다.

본 보고서는 구조 연구의 기초 자료로 쓰일 수 있으며 우리 나라 실정에 맞는 독자RISC ,

적인 프로세서 개발의 디딤돌이 될 것이다.

Page 109: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 109 -

참 고 문 헌

[1] Alpha architecture reference manual, Digital Press, 1992

[2] Alpha Hardware reference manual, Digital press, 1992

[3] Manolis G. H.. Katevenis, Reduced Instruction Set Computer architecture for

VLSI, The MIT Press,1984

[4] B. J. Catanzaro et al. ,The SPARC Technical Papers, 1991

[5] Paul Chow, The MIPS-X RISC Microprocessor, Kluwer Academic Publishers, 1989

[6] J. P. Hayes, Computer architecture and organization, Mc-Graw hill, 1988

[7] D. A. Patterson/J. L. Hennessy, Computer organization and design:

The hardware/software interface, Morgan Kaufmann, 1994

[8] Pentium Processor User‘s Manual, Intel corp, 1993

[9] Shiva, Computer design and architecture, Harper Collins Publishers, 1991

[10] D. Alpert, “Architecture of the Pentium Microprocessor”, IEEE Micro, June,

1993, pp. l1 21~

[11] D. W. Dobberpuhl et al. “A 200-MHz 64-b Dual-Issue CMOS Microprocessor",

IEEE J. Solid-state Circuits, Vol 27, No. l1, 1992, pp. 1555 1564~

[12] M. C. Becker et a1., "The Power PC 60l Microprocessor", IEEE Micro,

October 1993, pp. 54 67~

[13] T. Asprey et al., "Performance Features of the PA7100 Microprocessor", IEEE

Micro, June 1993, pp. 22 35~

[14] K. Uchiyama et al., "The Gmicro 1500 Superscalar Microprocessor with Branch

Buffers", IEEE Micro October 1993, pp. 12 22~

[15] R. A. Heald et a1., "A 6-ns Cycle 256-kb Cache Memory and Memory

Management Unit," IEEE J. Solite_State Circuits, Vol. 28, No. 11, Nov 1993,

pp.1078~1083

Page 110: Computer구조연구 - itfind.or.kr · 스팍구조가개방되어있기때문에시스템개발업체들은다양한스팍소프트웨어 하드웨, 어기술을이용하여호환성있는시스템을개발할수있다

- 110 -

[16] E. Mclellan, "The Alpha AXP Architecture and 21064 Processor", IEEE Micro,

June 1993, pp 36 47~