본문 바로가기
카테고리 없음

중첩된 레지스터

by by이종호기자 2022. 5. 25.
반응형

레지스터가 중첩된 경우 윈도우 프로시저의 복귀가 어떻게 되는지에 대해서 알아보겠습니다. RISC 프로세서의 특징과 중첩된 레지스터 윈도우 개념까지 살펴보겠습니다.

윈도우 프로시저의 호출과 복귀

윈도우 프로시저의 호출과 복귀는 고급 언어 프로그램에서 자주 나타나는데, 기계어 명령어로 번역되면 일련의 명령어를 만들어냅니다. 프로시저 호출의 경우에는 레지스터값을 저장하고, 프로시저에서 사용될 파라미터 (parameter) 를 전달하며, 프로시저를 수행하도록 서브루틴을 호출하는 명령어들이 생성되고, 복귀의 경우에는 이전의 레지스터값을 복구하고, 결과를 호출한 프로그램에게 전달하며, 서브루틴으로부터 복귀하는 명령어들을 생성합니다.

그런데 레지스터의 값을 저장하고 복구하는 일과 파라미터와의 결과를 전달하는 일은 시간이 많이 걸리는 동작입니다. 따라서 몇몇 컴퓨터에서는 레지스터값의 저장과 복구 동작을 없애기 위하여, 다수의 레지스터 묶음을 가지고서 각 프로시저에게 하나씩의 레지스터 묶음을 할당하는 방법을 사용합니다. 또한 프로시저에게 전달할 파라미터를 저장하는 매모리 스택을 사용하는 컴퓨터도 있지만 이 경우에는 매번 스택을 참조할 때마다 메모리를 접근해야 하는 단점이 있습니다.

RISC 프로세서의 특징

RISC 프로세서의 특징으로서 중첩된 레지스터 윈도우 (overlapped register win dow)를 사용하는데, 이것을 통하여 파라미터의 전달을 수행하고 레지스터값의 저장과 복귀 동작을 없앨 수 있습니다. 매 프로시저 호출이 있을 때마다 레지스터 화일로부터 새로운 윈도우를 할당합니다. 새 레지스터 윈도우는 호출시에 포인터를 하나 증가시킴으로써 활성화되고, 복귀시에는 포인터를 하나 감소시킴으로서 이전의 윈도우를 활성화합니다.

중첩된 레시스터 윈도우 개념

인접한 프로시저들의 윈도우는 파라미터와 결과를 전달하기 위해 레지스터를 중첩시켜 공유합니다. 그림에 중첩된 레지스터 윈도우의 개념을 그려놓았습니다. 이 시스템에는 모 두 74개의 레지스터가 있는데, R0에서 R9까지의 레지스터는 모든 프로시저가 공유하는 파라미터를 저장하는 전역 레지스터이고, 나머지 64개의 레지스터는 프로시저 A, B, C, D에게 할당되도록 4개의 윈도우로 나뉘어져 있습니다.

각 레지스터 윈도우는 10개의 지역 레지스터와 인접 윈도우와 공유하는 6개씩의 두 레지스터 집합으로 구성됩니다. 각 윈도우에서 지역 레지스터는 지역 변수를 위 해 사용되고, 공통 레지스터는 실제적인 데이타의 이동없이 파라미터의 전달 동작을 수행하는 데 사용됩니다.

반응형

댓글