CPU와 아키텍처

프로그램에서 서브루틴(함수)을 호출할 때 복귀 주소 등을 일시적으로 저장하기 위해 일반적으로 사용되는 영역은?

  1. A스택
  2. B캐시의 태그
  3. CROM의 고정 영역
정답과 해설 보기

정답: A. 스택

서브루틴을 호출하면 복귀 주소, 저장해야 할 레지스터 값, 지역 변수 등이 스택에 쌓입니다. 스택은 나중에 넣은 것을 먼저 꺼내는(LIFO) 구조로, 호출이 중첩되거나 재귀가 되어도 올바른 순서로 돌아올 수 있습니다. 맨 위 위치는 스택 포인터가 가리킵니다. 재귀가 너무 깊어 영역을 다 쓰면 스택 오버플로가 되며, 배열 범위를 넘어 복귀 주소를 덮어쓰는 공격도 있습니다.

  • A. 정답입니다. 복귀 주소 등은 스택에 저장됩니다.
  • B. 캐시의 태그는 캐시 데이터가 어느 주소의 것인지를 나타내는 정보입니다.
  • C. ROM은 고쳐 쓸 수 없으므로 실행 시 임시 저장에는 쓸 수 없습니다.
이 분야 연습하기 분야로 돌아가기

CPU와 아키텍처의 다른 문제

  1. 캐시 미스 분류인 「3C」에 포함되는 것의 조합으로 올바른 것은?
  2. 비순차 실행 CPU에서 순서를 바꿔 실행한 명령어의 결과를 프로그램 본래의 순서대로 확정(리타이어)시키기 위한 구조는?
  3. 비순차 실행 CPU에서 사용되는 레지스터 리네이밍의 주된 목적은?
  4. AI용 가속기 등에서 다수의 곱셈-누산 연산기를 격자 모양으로 배치하고 데이터를 이웃 연산기로 차례로 흘려보내며 행렬 곱을 계산하는 구성은?
  5. 프로그램의 성능이 연산 성능과 메모리 대역폭 중 어느 쪽에 의해 제한되는지를 연산 강도(1바이트당 연산 수)를 가로축으로 하여 도시하는 모델은?

이 분야의 비교