문제 정보 / 이미지 출처 (무료인강) :
https://www.youtube.com/playlist?list=PLimVTOIIZt2aR9jib0ws7hoDVZXdtiWsK
1. 명령어 형식
2. 0주소, 1주소, 2주소, 3주소 명령 ( 오퍼랜드(자료부, 피연산자) 개수로 나뉨 )
3. 스택
4. 주소 설계 시 고려사항
1. 명령어 형식
주기억장치가 1024 워드일경우 = 워드가 1024개라는 의미 = 레지스터의 개수 1024
즉, 오퍼랜드는 10비트로 지정돼있어야 모든 레지스터의 주소를 가리킬 수 있다.
OP Code는 4비트로 주어졌고, mode 비트는 직 혹은 간접 주소지정 방식만 구분하므로 1비트면 된다.
10 + 4 + 1 = 15
2. 0주소, 1주소, 2주소, 3주소 명령 ( 오퍼랜드(자료부, 피연산자) 개수로 나뉨 )
0-주소 명령어
- 오퍼랜드부가 없다 >> 명령어 길이가 짧아서 기억공간을 적게 차지한다.
- 모든 연산은 스택에 있는 자료를 이용하여 수행, 연산의 결과도 스택에 저장
- 모든 피연산자 값을 상실하는 명령어 형식
: stack은 모든 기존의 피연산자값을 pop하여 연산된 결과를 다시 stack에 저장
스택 ( Stack )
(스택메모리에 데이터를 요청할때는 주소가 필요없다, push(Top pointer로), pop
Push : Top = Top + 1 / Pop : Top = Top - 1)
- "처리되는 순서대로 기억시킨다" 라는 지문은 틀림
- instruction cycle time이 가장 짧은건 스택 메모리
- 부프로그램(sub-program)에서 주프로그램 (main-program) 혹은 호출한 프로그램으로 복귀할 때
복귀주소를 기억하기 좋은 메모리는 스택메모리 (스택말고도 여러가지 방법이 있음)
EX) 메인 프로그램이 100번지를 실행했으면 PC(프로그램 카운터)에 101번지가 저장되고, 스택에도 101 번지가 저장됨
부프로그램1에서 205번지를 실행했으면 PC에 206번지가 set되고 스택에 205번지가 저장됨
부프로그램 2에서 800번지를 실행하고 복귀할때는 나중에 저장된 206번지로 복귀,
부프로그램 1에서 명령을 모두 수행하고 복귀할 땐 먼저 저장된 101번지로 복귀 (LIFO 구조)
- 3+4 → 34 +
역 polish (post fix) 형식으로 바꾸어야하는 CPU 구조
push / pop 명령어 뒤에 오는 오퍼랜드부에는 주소가 아니라 데이터가 온다. 주소 X
1-주소 명령어
- 누산기 (Accumulator)에 의해 수행, 연산 결과도 누산기에 저장 *누산기 : 연산장치에 포함돼있음
1주소 명령어로 데이터 가져오면 무조건 누산기와 연산
예문에 있는 식을 명령어로 나타낸것, AC는 누산기를 나타내고 M[ ]은 메모리에 할당함을 나타냄
2-주소 명령어
- 레지스터 메모리 명령
- 중앙처리장치 내에서 직접 시험이 가능하므로 시간이 절약된다.
3-주소 명령어
- 명령어의 길이는 길지만 프로그램의 길이는 짧아진다.
- 여러 개의 범용 레지스터를 가진 컴퓨터에 사용된다
- 연산 후에 입력자료가 변하지 않고보존된다.
- 연산의 결과는 3rd operand에 남는다. 이러한 보기가 없다면 1rd operation에 남는다는 보기도 맞다.
실제로 사용될 때는 ADD C, R1, R2 식으로 쓰이기 때문. ( R1 + R2의 연산 결과를 C에 저장하라 )
인스트럭션의 성능 = 수행시간 / ( 패치시간 + 준비시간 )
명령어 수행 시간이 10ns, 명령어 패치시간이 5ns, 명령어 준비시간이 3ns 이면
수행시간 10 / 수행시간과는 관련없는 8ns = 1.25
4. (프로그래머가) 주소 설계 시 고려사항
주소 공간과 기억 공간을 독립시킬 수 있어야 한다.★
주소공간은 변수 공간
기억공간(실제 메모리의 물리적 주소)은 메모리의 번지 공간
프로그래머는 주소공간만 알면된다.
즉, 설계 시 고려할 것은 실제물리적주소인 기억공간이 아닌, 주소공간!!
주소 byte= 실제 물리적 주소
주소 표시는 변수로
가상기억 공간의 확보는 운영체제가 할 일
실행될 명령어는 명령어 레지스터에 보내지지 범용레지스터에는 X
CPU내의 레지스터 수는 한정되어있으나 주기억장치 (메모리)는 용량이 굉장히 크다
>> 명령어 개수 물어보는 문제
OP Code 4비트이므로 2^4 = 16개 명령어 가능
[암기]
'기타' 카테고리의 다른 글
정보처리 필기_전자계산기 구조_14강_마이크로 오퍼레이션 (0) | 2019.07.28 |
---|---|
정보처리 필기_전자계산기 구조_13강_주소지정 방식 (0) | 2019.07.28 |
정보처리 필기_전자계산기 구조_11강_연산 -(인강 메모) (0) | 2019.07.26 |
정보처리 필기_전자계산기 구조_10강_명령어 (인강메모) (0) | 2019.07.26 |
정보처리 필기_전자계산기 구조_09강_레지스터 (인강메모) (0) | 2019.07.26 |