레지스터
CPU 메모리
명령어 ALU 자료
제어 장치
내부 연결 구조
주소선
자료선 제어선 명령
어 집합
프로그램 카운터(PC: Program Counter)
◦ 다음에 실행할 명령어의 주소를 저장
명령어 레지스터(IR: Instruction Register)
◦ 메모리로부터 읽어온 명령어를 일시적으로 저장
기억장치 주소 레지스터(MAR: Memory Address Register)
◦ 읽기 동작이나 쓰기 동작을 수행할 기억장소의 주소를 저장
PSW (flag register)
◦ CPU의 상태를 나타냄
기억장치 버퍼 레지스터(MBR: Memory buffer Register)
기억장치에 저장될 데이터 혹은 기억장치로부터 읽은 데이터를 임시적으로 저 장
입/출력 주소 레지스터(I/O AR: I/O Address Register)
입/출력 장치의 주소를 저장
입/출력 버퍼 레지스터(I/O BR: I/O Buffer Register)
입/출력 모듈과 CPU 사이에 교환되는 데이터를 일시적으로 저장
스택구조
◦ 자료 접근( LIFO- Last In First Out )
저장 순서에 따라 참조 정보가 정해지는 순차적 접근
◦ 스택의 위치 : CPU내부의 RAM 또는 레지스터 집합
스택의 구현
스택 포인터(SP; Stack Pointer)
◦ 스택의 top 위치를 지시
◦ 특수 레지스터를 이용 자동으로 처리
스택내의 자료 접근
: 스택 포인터(주소)를 통해 접근
스택의 저장 순서
0
A
B B
A 초기화 ‘A’, ‘B’ 푸쉬 후 팝 후
◦ 직접 연결 : 연결 복잡도가 장치수의 제곱에 비례
◦ 버스 연결 :
공용 선들의 집합
보편적인 장치들간의 연결
한 순간에는 하나의 정보만 전송 가능
예) 4개의 레지스터
산술연산 논리회로 함수 테이블(p283) 회로설계
는 수업시간에
논리 연산의 함수 테이블
논리연산 회로
설계된 산술연산 회로와 논리연산 회로를 조합하면 ALU가 완성
선택선 S1과 S0는 산술연산 회로와 논리연산 회로가 공통으로 사용
선택선 S2는 두 회로 중 하나를 선택하는데 사용
S2가 0이면 산술연산을, S2가 1이면 논리연산을 수행
◦ 플래그(flag) 또는 PSW
◦ CPU를 설계하는 과정에서 상태 비트는 여러 종류가 존재
자리올림(Carry : C), 오버플로우(Overflow : V), 제로(Zero : Z), 부호(Sign : S)의 4가지는 필수적이다.
C(Carry) : 자리올림 비트가 1이면 자리올림수가 발생한 한다.
S(Sign) : 부호비트가 1이면 음수이고, 0이면 양수 상태를 나타낸 다.
Z(Zero) : ALU의 연산결과 모든 비트의 출력이 0이면 제로 비트는 1이 되고, 그렇지 않으면 제로 비트는 0이 된다.
V(Overflow) : ALU의 두 자리올림수 C8, C9를 XOR를 한 결과가 1 이면 오버플로우가 발생한 것이고, 그렇지 않고 0이면 오버플로우 는 발생하지 않은 상태다.
하드웨어만으로 설계된 하드와이어적 제어장치(hardwired control unit)
제어 싞호의 생성과정이 빠르다.
구현 논리 회로는 매우 복잡해질수 있다.
소프트웨어가 포함된 마이크로 프로그램된 제어장치(micro- programmed control unit)
명령어 패치 (Fetch Instruction)
명령어 해석 (Decode)
피연산자 패치 (Fetch operands)
실행(Execution)
명령어 인출 사이클에 대한 마이크로 연산
◦ 마이크로 연산 - 명령어를 실행하기 위한 CPU의 가장 기본 단위 연산
명령어 인출 사이클에 대한 마이크로 연산(add의 경우)
◦ 기억장치에 저장된 데이터를 AC의 내용과 더하고, 그 결과를 다 시 AC에 저장하는 명령
명령어는 연산 코드(Operation Code), 주소지정모드 (addressing modes), 오퍼랜드(Operand)로 구성
명령어 형식 예)
산술논리 연산
연산 기능을 담당하는 산술 연산이나 논리 연산 명령 등
젂달 기능(Transfer operation)
CPU와 주기억장치 사이, CPU 내의 레지스터 간의 정보교환과 적 재, 저장기능을 수행
입출력 기능(Input/Output Operation)
입출력 명령어는 중앙처리장치와 외부 장치들 간의 데이터 이동 을 위한 명령어
제어 기능(Control Operation)
제어장치에서 수행되며 프로그램의 수행흐름을 제어하는 데 사용
호출 명령어(CALL 명령어)는 현재 PC 내용을 스택에 저장하고 서브 루틴의 시작 주소로 분기하는 명령어다.
복귀 명령어(RET 명령어)는 CPU가 원래 실행하던 프로그램으로 되 돌아가도록 하는 명령어다.
3-주소 명령어(three-address instruction)
2-주소 명령어
1-주소 명령어
0-주소 명령어
예제에 의한 설명
주소 수가 많아질수록 명령어가 더 복잡
레지스터 수가 많아져 연산 속도가 빨라짐
프로그램당 명령어 수가 감소
주소 수가 적은 명령어는 명령어 인출과 실행 속도가 높
음. 그러나 프로그램의 길이 증가
명령어 개수를 줄여 하드웨어 구조를 좀 더 간단하 게 만드는 방식
Cf) 복잡 명령어 집합 컴퓨터(CISC, Complex Instruction Set Computer)
CISC보다 구조가 단순하기 때문에 복잡한 연산도
적은 수의 명령어들을 조합하여 수행 처리 속도
를 향상
사이클당 한 명령어 실행
메모리 접근을 제한: LOAD와 STORE 명령어
많은 수의 레지스터 사용
제어장치가 간단해 짐
적은 수의 단순한 명령어 형식