SSAFY CS 스터디: 1주차 리뷰
- 범위: 이취컴 Chapter 02-1 ~ 02-3 (p.36~89)
- 참여형태: 🛡️수비조
저장장치 계층구조와 왜 그런 계층구조가 필요한지 설명해주세요.
답변
저장장치 계층구조는 속도가 빠른 순으로 레지스터, 캐시, 주메모리, 보조메모리가 있고, 속도가 빠를수록 비싸고 용량이 작다는 특징이 있습니다.
부품의 물리적인 거리나 구조에 의해 연산 속도에서 차이가 발생하고, 역할에 따라 서로 분리되어 있는 것이 최적화된 성능을 얻을 수 있습니다.
또한 단가에 따라 효율적으로 부품들을 배치해야 하기에 계층 구조가 존재합니다.
그래서 분산 레지스터라는 구조가 존재함.
왜 부동소수점 오차가 발생하는지 설명해주세요.
답변
2진법으로 정확히 나누어 떨어지지 않는 무한소수는 메모리가 유한하기 때문에 모든 가수부를 저장할 수 없어, 일부 데이터가 생략됩니다.
부동소수점 체계에서 두 실수를 비교하기 위해 어떤 방법이 있는지 말씀해주세요.
답변
수학적으로는 엡실론 값을 설정해서 일정 구간 내의 오차는 허용 하는 식으로 비교하고,
라이브러리적으로는 자바에선 BigDecimal의 compareTo 메소드를 사용하여 비교합니다.
명령어의 구조와 각각이 무엇을 의미하는지, 그리고 오퍼랜드에 어떤 값이 올 수 있는지 설명해주세요.
답변
명령어는 opcode와 operand로 구성되어 있고, opcode는 수행할 작업, 그리고 operand는 수행할 작업의 대상입니다.
operand에는 데이터 값 자체가 올 수도 있지만, 데이터가 위치한 주소 값이 저장되기도 합니다.
UTF-8이 전세계적으로 널리 사용되는 이유를 말씀해주세요.
답변
ASCII 문자 집합은 표현 가능 범위가 한정되어있어 각 국가별 언어를 지원하는 문자 집합이 별도로 필요한데,
UTF-8은 가변길이 인코딩이어서 효율적으로 여러 국가의 언어를 지원할 수 있기 때문입니다.
CPU가 명령어를 처리하는 과정인 명령어 사이클에서, 간점 사이클이 왜 있어야 하는지 말씀해주세요.
답변
CPU가 명령어를 인출했을 때 오퍼랜드가 주소값으로 되어있으면 메모리에 재접근해야 하므로 이 과정에서 간접 사이클이 필요합니다.
파이프라이닝에 대해 설명해주세요.
답변
CPU가 명령어를 효율적으로 처리하기 위해 인출, 해석, 실행, 저장이라는 여러 과정을 병렬적으로 하나의 파이프라인에 모아 처리하는 명령어 병렬 처리 기법입니다.
CISC와 RISC 중 파이프라이닝에 더 적합한 체계와 그 이유를 말씀해주세요.
답변
파이프라이닝에 더 적합한 체계는 RISC입니다.
RISC는 CISC 대비 명령어의 크기와 수행시간이 규격화되어있어 파이프라이닝에 최적화되어있습니다.