Hacker News 의견
  • Trinary 컴퓨터 에뮬레이션에서 3의 거듭제곱으로 나누는 것을 비트 시프트와 덧셈으로 변환하는 방법이 있음

    • 1/3을 1/2 - 1/2(1/3)으로 표현할 수 있음
    • 이를 무한히 반복하여 1/3 = -(-1/2)^N으로 표현 가능함
    • 2와 3의 임의의 거듭제곱 쌍으로도 가능함
    • 이를 통해 고정된 시간 내에 상수로 나누는 회로를 덧셈기와 뺄셈기로만 구성할 수 있음
  • Cinematronics 아케이드 게임 프로세서는 두 개의 12비트 누산기를 가짐

    • 곱셈 명령은 24비트 값으로 시프트하고 메모리 내용을 더함
    • 8개의 곱셈을 연속으로 실행하여 24비트 결과를 얻음
    • 주로 게임 객체의 좌표 회전을 위한 2x2 행렬 곱셈에 사용됨
    • 1970년대 중반에 7400 시리즈 부품을 사용하여 5MIPS의 최고 처리량을 가짐
  • Peter Kogge는 Stanford에서 박사 학위를 받았고, IBM 펠로우로서 다중 코어 CPU를 발명한 인물임

  • 주소 계산에서 3으로 곱하는 것은 흔한 작업임

    • LEA 명령어를 사용하여 단일 사이클 내에 수행할 수 있음
    • 트랜지스터 예산을 사용하는 것이 좋은 선택이었음
  • 곱셈기에서 7로 곱하는 대신 8을 곱하고 1을 빼는 방법이 있음

    • 이는 캐리 룩어헤드 회로와 유사함
    • 7 = 8-1, 6 = 8-2, 5 = 8-3, 4 = 8-4로 표현 가능함
  • ×3 곱셈기는 약 9000개의 트랜지스터를 포함하며, 이는 1976년의 Z80 마이크로프로세서보다 많음

    • 이는 프로세서 복잡성의 엄청난 성장을 보여줌
    • 오늘날 실리콘 반도체 기술의 한계에 도달했으며, 더 스마트하게 작동해야 할 때임
  • radix-8 부스 곱셈기는 x3 회로가 필요함

    • 이는 fmax를 밀어내기 위한 영역/성능 트레이드오프임
  • 8086: 29,000

    • 386: 275,000
    • 486: 1.2 million
    • Pentium: 3.1 million
    • NSA는 2000년 이후에 참여함
  • radix-8 곱셈의 단점은 0에서 7까지의 숫자로 곱하는 것이 복잡함

    • 2로 곱하는 것은 비트를 왼쪽으로 1비트 이동하는 것과 같음
    • 4로 곱하는 것은 비트를 왼쪽으로 2비트 이동하는 것과 같음
    • 7로 곱하는 것은 8을 곱하고 1을 빼는 방법으로 해결 가능함
    • ×3은 2x와 1x의 합 또는 4x와 1x의 차로 계산할 수 있음
    • ×6을 쉽게 계산할 수 있다면, ×3은 그 값을 오른쪽으로 시프트하여 얻을 수 있음