OSgood의 개발일기

레지스터(Register) 본문

Computer Architecture

레지스터(Register)

OSgood 2019. 3. 22. 12:54

  • 레지스터는 목표 기계에서 가장 빠른 계산장치이다. but, 우리는 보통 모든 값들을 저장할 수 있는 충분한 레지스터를 갖지 못한다. 

→ 레지스터에 저장되지 않은 값들은 메모리에 저장될 필요가 있다.


    • 레지스터 할당(register allocation) → 이 기간 동안에 우리는 프로그램의 각 지점에서 레지스터에 저장될 변수들의 집합을 선택
    • 레지스터 배정(register assignment) → 이 기간 동안에 우리는 한 변수를 포함하게 될 특정 레지스터를 선택한다.

  • 변수들에 대한 레지스터들의 최적인 배정(assignment)는 단일-레지스터 기계에 대해서도 어렵다. 수학적으로, 이러한 문제는              NP-complete하다. 하지만 많은 compiler optimization에 관한 연구가 진행되고 있고 compiler optimization는 굉장히 중요한 문제이다.
  • 앞으로 이 부분에 대해서 더 자세히 공부해보도록 하겠다.



[참고] compiler : principles, techniques & tools  -Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman

Comments