메모리에 instruction data가 올라오고 cpu는 매 클럭마다 instruction을 수행
컴파일러: high lever language를 다른 언어로 변환(컴파일)하고 그 결과를 목적 파일에 써 놓는 프로그램
인터프리터: 기계어로의 컴파일 과정을 거치지 않고 소스코드를 바로 실행하는 일종의 가상머신
어셈블러: 어셈블리 언어 프로그램을 기계어 프로그램으로 변환함
레지스터
- 레지스터는 메모리에서 가져온 데이터를 저장하는 CPU 내부 스토리지이다.
- 한 사이클에 읽거나 쓸 수 있다.
- 산술논리 연산자가 동작한다
- MIPS ISA에는 32개의 32bit 레지스터가 존재한다. 각 레지스터는 32개의 플립플롭을 가지고 있다.
- 레지스터가 32개인 이유는 레지스터 수가 매우 많으면 단순히 더 멀리 이동해야 할 때 전자 신호가 더 오래 걸리기 때
문에 클럭 사이클 시간이 증가할 수 있기 때문이다.
메모리 계층
- 레지스터 > 캐시 > 메모리 > 하드디스크
- 레지스터는 프로그래머가 볼 수 있고 프로그래머가 유지 관리한다.
- 캐시는 프로그래머가 볼 수 없고 하드웨어에서 유지 관리한다.
Opcode: 명령어에서 실제로 어떤 동작을 하는지 나타내는 부분(ADD, LOAD, STORE)
Operand: 명령코드가 연산할 대상으로 명령어에 들어가는 인자 부분
ISA
- Instruction set architecture으로 명령어 집합 구조이다.
- software에서 hardware로 넘어가는 단계에서 중재자 역할을 해준다.
- 잘 정의된 하드웨어와 소프트웨어 인터페이스
- 하드웨어에서 지원하는 운영, 모드 및 스토리지 위치에 대한 기능적 정의 / 호출 및 엑세스 방법에 대한 정확한 설명을 담고 있음
- ISA는 절대 모호해서는 안됨
좋은 ISA란?
- Programmability: 프로그램을 효과적으로 쉽게 표현할 수 있는지
- Implement-ability: 고성능 구현을 디자인 하기 쉬운지
- Compatibility: 이전 프로그램, 미래의 프로그램들과 호환될 수 있는지
Assembly language vs machine language
- 어셈블리어는 조금 더 사람의 언어에 가까움, 결과 값이 앞에 옴(a=b+c에서 a가 앞에 옴)
- 기계어는 사람이 이해하기 힘들과, 결과 값이 앞에 오지 않을 수 있음
MIPS
- RISC 형식을 채택
- 레지스터를 줄여서 속도를 빠르게 함(MIPS 안에는 32개의 레지스터)
- 많이 쓰는 것일수록 빠르게 만듬
레지스터는 한정적인데 저장할 데이터 값들은 많으니 이를 해결하기 위해 스택에 데이터를 백업해둔다.
Harvard architecture
- 폰 노이만 구조의 단점을 보완하기 위해 고안
- 명령과 데이터를 메모리로부터 읽는 것을 동시에 할 수 있음
- 명령의 처리를 끝내자마자 다음 명령을 읽어 들일 수 있기 때문에 보다 더 빠름
'학교공부 > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] Memory Hierarchy (0) | 2023.06.03 |
---|---|
[컴퓨터 구조] Multithreading (0) | 2023.06.03 |
[컴퓨터 구조] Handling Dependences (0) | 2023.05.08 |
[컴퓨터 구조] Pipelining (0) | 2023.04.25 |
[컴퓨터 구조] Computer Organization/Performance (0) | 2023.04.24 |