내 cpu가 x64 아키텍처이고
cpu-z로 ISA보면 MMX, SSE, AVX 엄청 많은데
명령어집합ISA라는게 라이브러리 같은 개념임?
명령어를 빠르게 처리 해주는 어셈블리 명령어가 있다거나, 부동소수점 연산을 더 빠르게 해주는 명령어가 포함되어있다거나
이런 개념임?
근데 cpu-z말고 내 cpu가 지원하는 ISA 목록 볼려고 했는데
어디서 봐야함? CPU메뉴얼을 못 찾겠음
내 cpu가 x64 아키텍처이고
cpu-z로 ISA보면 MMX, SSE, AVX 엄청 많은데
명령어집합ISA라는게 라이브러리 같은 개념임?
명령어를 빠르게 처리 해주는 어셈블리 명령어가 있다거나, 부동소수점 연산을 더 빠르게 해주는 명령어가 포함되어있다거나
이런 개념임?
근데 cpu-z말고 내 cpu가 지원하는 ISA 목록 볼려고 했는데
어디서 봐야함? CPU메뉴얼을 못 찾겠음
x64는 아키텍처의 이름이고 ISA는 그 아키텍처가 지원하는 명령어 집합이야.
ㅇㅇ 근데 mov, sub같은 기본적인 명령어는 기본적으로 아키텍처가 지원하는거 아님?
아키텍처 자체는 cpu에 대한 설계와 구조, 명세, 사양 등을 아울러서 표현하는 단어, cpu를 특정하고 구분할 수 있는 단위가 됨. 아키텍처마다 "어떤 고유한 명령어를 수행할 수 있도록 아키텍처를 설계"하는데, 이런 식으로 수행할 수 있는 명령어들을 모아서 부르는 게 isa. 그 isa 안에 들어있는 각각의 고유한 명령어들이 mov, sub 같은 것들. 리스트는 칩셋 제조사 홈페이지에서 찾아봤던 기억이 있음.
최소한의 필수 요소로 "and or not", "store", "jump"의 5가지 연산은 반드시 수행할 수 있어야 함. 사실 jump 없이도 가능한데 이러면 분기가 없는 프로그래밍만 가능함. 진짜 최소한의 필수 연산은 4가지인 셈임. 하지만 보통 분기를 포함하고 5개로 침. 이때 연산끼리 결합해서 압축된 연산으로 다른 연산을 대체할 수 있음. 가령 "and or not"은 "nand" 또는 "nor" 둘 중 하나로 모두 대체가 가능함. (범용 게이트 하하) oisc 같이 단일 명령어로 튜링완전할 수 있는 이유는, 그 단일 명령어가 사실상 여러 연산이 하나로 압축된 상태이기 때문임. 쉽게 명목상 명령어는 1개인데 안에 내재된 기능상의 잠재력은 5인분인 셈.
가끔 isa를 보면 and or not이나 store 깉은 제일 기초적인 연산들은 리스트에 없는 경우도 있음. 보통 다른 명령어와 결합해서 간접적으로 존재하고 있기 때문임.