- 이진법이 무엇인가?
- 16진법은 1~9 와 영어 A ~ ( ) 로 모든 수를 표기하는 방법이다. 여기서 A가 나타내는 숫자와 ()안에 들어갈 영어가 무엇인지, () 안의 영어가 무엇을 나타내는 숫자인지 말하시오.
- 이진수 1011 의 2의 보수를 구하고 구하는법을 말하시오.
- 0101 이 양수를 나타내는건지 음수를 나타내는건지 어떻게 아는가?
- 문자 인코딩과 디코딩을 설명하시오.
- 알맞지않은 디코딩을 했을때 모든 문자가 깨져도 영어는 깨지지 않는 이유를 말해보시오.
- 아스키 문자는 몇가지 경우의 수를 표현하는가? 그리고 그것의 문제점은 무엇인가?
- 7번 문제의 문제점을 해결하기 위해 등장한 문자집합은 무엇인가?
- 2진수, 8진수, 16진수의 접두사를 말하시오.
답안
1. 0과 1로 모든 수를 표기하는 방법, 1을 넘어가는 시점에서 자리올림
- F, 15
- 0101, 모든 0과 1을 뒤집고 1을 더한다.
- cpu의 플래그 레지스터에 음수 플래그가 세팅되어있으면 음수,
음수 플래그가 세팅되어 있지않으면 양수이다.
- 문자 인코딩 : 문자를 0과 1로 이루어진 문자 코드로 변환
문자 디코딩 : 0 과 1로 이루어진 문자 코드를 문자로 변환
- 오늘날의 모든 문자열 인코딩 디코딩 방식은 초창기 문자집합인 아스키 코드와 호환되는 경우가 많기때문이다.
- 아스키문자는 0부터 127까지 128까지(2^7)의 경우의 수만을 표현한다. 그래서 영어외 한국어 및 기타 외국어는 표현할 수가 없다.
- 유니코드 문자집합 (utf-8, utf-16 등등)
- 0b, 0, 0x
- CPU의 핵심 구성 요소 3가지를 말하시오.
- 레지스터의 역할을 말하시오.
- 플래그 레지스터에는 부호플래그, 제로플래그, 캐리플래그,오버플로우 플래그,인터럽트 플래그, 슈퍼바이저 플래그가 있다.
여기서 슈퍼바이저 플래그의 역할을 말하시오.- 인터럽트에 대해 간단히 설명하시오.
- CPU의 명령어 파이프라인에 대해 설명하시오.
- 슈퍼스칼라에 대해 설명하시오.
- cpu의 설계방식중 cisc와 risc의 차이를 말하시오.
- 비순차적 명령어처리에 대해 설명하시오.
답안
1. ALU(산술논리연산장치),제어장치, 레지스터(들)
2. 명령어 처리 전후로 값을 임시 저장하는 장치
3. 슈퍼바이저 플래그: 커널모드로 실행중인지, 사용자모드로 실행중인지를 나타낸다.
부호플래그: 연산한 결과의 부호를 나타낸다.
제로플래그: 연산한 결과가 0인지 여부를 나타낸다.
캐리 플래그 : 연산 결과 올림수나 빌림수가 발생햇는지 여부를 나타낸다.
인터럽트 플래그 : 인터럽트가 가능한지 여부를 나타낸다.
4. CPU의 정상적인 실행 흐름을 방해하는 신호
5.명령어가 처리되는 서로 다른 단계를 동시에 처리하는기법[명령어 파이프를 적용한 경우]
6. 다수의 명령어 파이프라인을 두는 방식(멀티코어, 멀티스레드 cpu)
7. cisc는 인텔 cpu의 설계방식 risc는 arm cpu의 설계방식(맥북 m1)에서도 사용cisc는 클럭주기의 변동성이크다. 왜냐하면 명령어가 적지만 하나의 명령어가 복잡한 기능을 하기 때문. 이유는 초창기 cpu 개발시 메모리에 차지하는 용량을 줄이기 위해서였다.
risc는 클럭주기가 일정한 편이다. 복잡한 기능을 하는 하나의 명령어가 없는대신 다수의 명령어를 사용하기때문, 또한 메모리의 접근을 최소화하기위해 cpu레지스터를 주로 사용한다.
- 기존의 파이프라인대로 순차적으로 명령어를 처리할 경우 의존관계가 있는 명령어들이 실행될때 그 의존관계가 다 끝날때까지 다음 명령어를 실행하지 못하는 비효율적인 상황이 발생한다. 그래서 의존관계가 없는 명령어들을 먼저 실행하고 의존관계가 있는 명령어는 나중에 실행하는 식으로 순서를 변경하여 cpu 명령어 처리의 효율성을 높인다. (애플의 m1은 risc 방식을 사용하기도 하지만 이 비순차적 명령어 처리를 아주 잘해 성능이 좋다는 이야기가 있다)