지난주에 구해서 읽은 전자책 네 권이 모두 주옥 같다면 이번에 구한 종이책 두 권도 매우 주옥같다.
클레멘츠 박사님의 저서
스톨링 박사님의 저서
이 두 권을 저본 삼아 보면서 정공법으로 읽기로 했다. 참고 문헌도 다 찾아보고 있다. 지금은 컴퓨터 구조와 조직(computer architecture and organization)의 정의부터 살펴보고 있다. 그저 단순한 단어의 정의가 아닌 개념적으로 어떻게 구별되는지가 중요하다. 이번 장에서 이를 설명할 수 있는지도 학습목표라 잘 해두어야겠다.
우선 구조는 인스트럭션 세트 구조라고도 하는 구성 요소로 프로그래머에게 쓰이는 것들 즉 프로그램에 논리적 수행에 직접적 영향을 주는 시스템의 특성들을 말한다. 예를 들면 인텔 x86 계열 CPU와 IBM의 PowerPC는 다른 구조(architecture)다. 반면 조직(computer organization)은 컴퓨터 구조에서 정의한 명령어 실행 구조를 직접 하드웨어적으로 구현한 것으로 연산 장치들의 상호 연결을 말한다. 조직적 속성에는 프로그래머가 신경안써도 되는 내부 하드웨어 사항인 제어 신호, 컴퓨터 부품들끼리의 인터페이스 등이 있다. 구조적 속성에는x86 아키텍처, PowerPC 아키텍처 등이 있다. 이 둘은 인스트럭션 세트의 관점에서 서로 다르다. 그러나 조직적으로는 공유하는 관점이 있다. 전자는 MMX를 지원하느냐가 있고 후자는 레지스터를 어떤 제어 신호로 쓰는지와 같은 것이 있다. (이는 내 이해를 더함)
명령어의 공통된 특성 즉 인스트럭션 세트의 관점에서 볼때 어떤 컴퓨터가 어떻게 곱셈 명령어를 가지게 할 것인가의 여부는 아키텍처적인 설계의 하나다. 이 곱셈 명령어를 특수한 곱셈 유니트로 구현할 것인가, 또는 덧셈 유니트만으로 반복 연산하게 할 것인가는 조직 설계의 차원이다. 즉 조직 설계는 곱셈 명령어의 예상 실행 빈도와 두 방식 간의 상대적 속도, 특수 곱셈 유니트의 가격과 크기 등이 고려된다. (이는 전적인 요약) 즉 인스트럭션 세트는 아키텍처이고 이를 실재로 구현하는 사양들간의 배분과 세부 설계를 컴퓨터 조직이라고 한다.
아키텍처는 명령어들의 공통된 기준을 정의하고, 조직은 아키텍처가 실재로 수행하는 것을 사양으로 조합한 것이다. 예를 들면 앞서 말한 명령어 수행 방식의 하드웨어적인 구현, 제어 신호, 컴퓨터 부품끼리의 인터페이스는 다른 아키텍처의 컴퓨터들에 대부분 실재적으로 수행하는 것이 개별적으로 구현된 사양으로 개별적으로 채택해서 조합하기도 한다.
같은 x86 계열의 컴퓨터들도 아키텍처는 공유하더라도 내부 버스 속도는 다르며 PCI 인터페이스만 지원하기도 하고 PCI-E 인터페이스를 제공하기도 한다. 개별적인 사양의 실현에 의해 조합된 것의 성능은 다르다. 가격도 다르다. 프로그래머의 관점을 일단 배제하자면, 하드웨어 제작자와 구매자의 관심사는 가격과 성능이 최고로 일치하는 사양을 정하는 일이다.
가격과 성능이 발전해가는 것은 구조와 조직의 상호 관계에 의해 정해진다. Ryzen 5 5600X에 RTX3090을 쓰는 컴퓨터와 Ryzen 3 CPU에 Radeon HD 7750을 쓰는 컴퓨터는 아키텍처가 같아도 가격과 성능이 제각각이다. 사용자들은 가격을 더 지불하면 더 높은 조직을 가진 컴퓨터로 바꿀 수 있는데 이는 구조와 조직이 조합되어 결정되는 시스템 성능과 사양을 바꾸는 것이다. 하드웨어 개발자들은 CPU 아키텍처를 바꿈으로써 구조적 이점을 살리며 각각의 세부 칩셋들의 차이를 둠으로써 조직적 이점을 살린다. (내 이해에 기반)
하드웨어 개발자들은 몇년간 같은 아키텍처를 지속하면서 조직적 이점도 살리려고 한다. 새로운 아키텍처가 속속 발표되고 이에 따라 조직적 속성도 일부 변화한다. 때로는 반대로 조직적 속성이 바뀌어야 하면 구조적 속성도 변화한다. 이처럼 컴퓨터는 구조와 조직적 속성이 상호 연결에 의해 바뀌면서 고성능으로 발전해간다. (인터페이스 사양이 우선 제정되고 CPU가 뒤따라 지원하기 위해 칩셋이 새로 발표되는 경우)
이정도가 핵심이고, 인용된 문헌을 뒤져서 이를 심화하는 글을 써야 한다.
약간 문장이 잘 안읽히는 문체가 된 것 같은데 일단 세부 문헌 탐구후 이해가 깊어지면 내 스스로 해설을 해보겠다. 이번 글에서도 내 표현대로 해둔 단락이 더 많다.