명령어집합의 여러 잠재적 문제점들 중에서 거의 극복하기 불가능한 문제 중 하나는 메모리 주소가 너무 작은 것입니다. x86은 16비트에서 32비트로, 나중에는 64비트까지 성공적으로 주소를 확장하였지만, 대부분의 다른 프로세서들은 이를 따라하지 못했습니다.
ARM설계자들은 자신들의 32비트 주소 컴퓨터에 대한 비판을 인지하고 2007년에 설계를 시작해 2013년에 64비트 주소버전을 내놓았습니다. MIPS를 이해하고 있다면 64비트 버전인 ARMv8은 매우 쉽게 이해할 수 있습니다.
첫째로, MIPS에 없는 ARMv7의 이상한 특징들을 사실상 거의 다 없애 버렸습니다.
- v7에서 거의 모든 명령어에 있던 조건부 실행 필드가 없어졌다.
- v7에서 복잡한 과정을 거쳐 계산해야 했던 수치 필드를 단순한 12비트 상수로 바꾸었다.
- 다중 적재(load multiple)명령어와 다중 저장(store multiple)명령어가 없어졌다.
- PC는 더 이상 일반 레지스터 중 하나가 아니다. 예전에는 일반 레지스터 중 하나였기 때문에 PC에 쓰기를 행하면 예
기치 못한 분기가 일어나곤 했습니다.
두번째로는 MIPS의 유용한 특징 중 ARM에 없던 것들이 추가되었습니다.
- v8은 범용 레지스터를 32개로 늘렸습니다. 컴파일러 제작들이 매우 좋아했을 것. 게다가 MIPS처럼 항상 0을 갖는 레
지스터도 두었다. 그러나 적재 명령어와 저장 명령어에서 이 레지스터는 스택 포인터를 가리킨다는 점이 다르다.
- ARMv8에서는 주소지정 방식이 모든 워드 크기에 대해 동작한다. ARMv7에서는 그렇지 못했다.
- ARMv7에 없던 나눗셈 명령어가 추가되었다.
- MIPS의 같을 시 분기 명령어와 다를 시 분기 명령어 같은 명령어가 추가되었다.
'Computer Architecture > 컴퓨터 구조' 카테고리의 다른 글
[18] CH2 명령어:컴퓨터 언어 < 함정 및 결론 > (0) | 2022.01.19 |
---|---|
[17] CH2 명령어:컴퓨터 언어 < RISC-V > (0) | 2022.01.19 |
[15] CH2 명령어:컴퓨터 언어 < ARMv7 > (0) | 2022.01.19 |
[14] CH2 명령어:컴퓨터 언어 < MIPS 버전 6 > (0) | 2022.01.19 |
[13] CH2 명령어:컴퓨터 언어 < MIPS 버전 5 > (0) | 2022.01.19 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!