문제

다양한 어셈블리 언어에서 MUL(x86)/MULT(mips)는 곱셈을 나타냅니다.프로그래머를 위한 블랙박스입니다.나는 아키텍처에 관계없이 CPU가 실제로 어떻게 곱셈을 수행하는지에 관심이 있습니다.내 레지스터에 두 개의 16비트 값이 있고 내가 CPU이므로 내가 가지고 있는 다른 비트 조정 명령(and,or,xor,not,shl,shr 등)을 사용하여 MUL을 구현해야 한다고 가정해 보겠습니다.내가 무엇을하여야한다?

도움이 되었습니까?

해결책

http://en.wikipedia.org/wiki/Multiplication_ALU Wikipedia에는 ​​디지털 회로에서 곱셈을 수행하는 다양한 방법이 나와 있습니다.

대학 시절 Verilog의 DEC Alpha 유사 프로세서에 SIMD 명령을 추가하는 프로젝트에 참여했을 때 우리는 다음을 구현했습니다. 월리스 트리 승수, 주된 이유는 고정된 수의 주기로 실행되고 파이프라인이 쉽기 때문입니다.

편집하다:다른 비트 조정 명령을 사용한다고 언급하셨는데, 최신 프로세서에서는 곱셈이 이와 같이 마이크로코딩되지 않습니다.속도가 너무 느려지고 벤치마크에서 프로세서가 도살될 것입니다.

다른 팁

이 페이지 4 * 4 조합 멀티 러의 논리 게이트를 보여줍니다. 거기에서 일할 수 있습니다.

여기 누군가의 실험실이 있습니다 이들은 4 개의 4 비트 멀티 플라이어에서 16 비트 멀티 플라이어를 구축하는 것을 설명합니다. 풀 디자인, 칩 레이아웃 및 시뮬레이션 파형.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top