본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다.
프로세서의 설계에 대하여 논의하기에 앞서 컴퓨터를 구현하고 있는 논리 회로가 어떻게 동작하고 또 컴퓨터가 어떻게 클러킹되는지 알아보자.
Combinational element (조합 소자)
똑같은 값이 입력 된다면, 무조건 같은 값이 출력되는 것이 보장된 논리 회로를 말한다.
ex) and-gate,adder, Multiplexer 등등
Sequential Elements (상태 소자)
회로 내부에 값을 기억하는 회로이다.
이러한 상태를 포함하는 논리소자들을 순차회로( Sequential circuit )라 부르는데, 이는 이들의 출력이 입력뿐만 아니라 내부 상태에도 의존하기 때문이다.
즉, 내부의 상태가 출력에 영향을 미치는 회로를 순차회로 라고 한다.
ex) 레지스터,데이터 메모리
Sequential Elements는 최소 두개의 입력과 1개의 출력을 갖는데, 하나의 입력은 데이터(D)이고, 하나의 출력은 데이터에 따른 값(Q) 이다. 나머지 하나는 클럭(clock)이라고 하는데, 데이터 값이 소자에 기록되는 시점을 결정한다.
clock이 0에서 1이 될때 Sequential Elements의 값을 변경하는 것을 Edge triggered라고 한다.
즉, 그 순간의 D의 값에 따라서 Q를 출력해준다.
Sequential Elements의 값을 입력하는 것은 클럭이 결정하지만, 읽어오는 것은 언제든지 가능하다.
이렇게 되면 클럭이 멈추지 않는한 데이터의 업데이트는 계속 이어질 것이다. 이를 위해 write contol 이 존재한다.
즉, wite control이 1일 때만 출력 값을 바꿔주는 것이다.
클러킹 방법론(clocking methodology)
클러킹 방법론은 신호를 언제 읽을 수 있고 언제 쓸 수 있는지를 정의한다.
읽기와 쓰기의 타이밍을 명시하는 것은 매우 중요하다.
명시하지 않는다면, 신호를 읽고 있는데 동시에 누군가가 새로운 값을 쓸 수도 있고, 읽은 값이 옛 값일 수도 있고 새로 쓴 값일 수도 있는 예측 불가능성이 생긴다.
클러킹 방법론은 예측 가능성을 보장하기 위해 고안되었다.
state element(레지스터 등등)로 부터 값을 읽어오고 읽어온 값을 combinational logic에서 계산하고, 나온 결과를 다른 state element(레지스터 등등)에 전달 해주어야 한다.
이러한 3가지 과정이 한 사이클에 전부 실행되어야지만, 다음 사이클에서 이 값을 가지고 다른 연산을 실행할 수 있을 것이다.
'CS > 컴퓨터 구조' 카테고리의 다른 글
[Chapter 4.4 컴퓨터 구조 및 설계] ALU 하드웨어 (0) | 2022.07.19 |
---|---|
[Chapter 4.3 컴퓨터 구조 및 설계] processor datapath와 레지스터 파일 (0) | 2022.07.19 |
[Chapter 4.1 컴퓨터 구조 및 설계] 프로세서 구현에 대한 개요 (명령어는 하드웨어에서 어떻게 실행되는가) (0) | 2022.07.17 |
[Chapter 3.8 컴퓨터 구조 및 설계] 연산에 있어서 겪을 수 있는 오류 및 함정 (0) | 2022.07.16 |
[Chapter 3.7 컴퓨터 구조 및 설계] 부동 소수점 곱셈 (0) | 2022.07.15 |