KR100446564B1 - 데이타처리시스템및이시스템에서의연산실행방법 - Google Patents

데이타처리시스템및이시스템에서의연산실행방법 Download PDF

Info

Publication number
KR100446564B1
KR100446564B1 KR1019950051134A KR19950051134A KR100446564B1 KR 100446564 B1 KR100446564 B1 KR 100446564B1 KR 1019950051134 A KR1019950051134 A KR 1019950051134A KR 19950051134 A KR19950051134 A KR 19950051134A KR 100446564 B1 KR100446564 B1 KR 100446564B1
Authority
KR
South Korea
Prior art keywords
register
result
pipeline
instructions
bus
Prior art date
Application number
KR1019950051134A
Other languages
English (en)
Other versions
KR960024896A (ko
Inventor
리오엘 애델만 유다
가란티 데이비드
사란트 요람
Original Assignee
모토로라 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모토로라 인코포레이티드 filed Critical 모토로라 인코포레이티드
Publication of KR960024896A publication Critical patent/KR960024896A/ko
Application granted granted Critical
Publication of KR100446564B1 publication Critical patent/KR100446564B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)
  • Complex Calculations (AREA)

Abstract

데이타 산술 논리 유닛(54)에서, MAC 연산 후의 목적지 레지스터(82)에의 불필요한 재기록을 제거함으로써 전력 소비가 감소된다. 데이타 ALU(54)에 제공된 일련의 명령들은 제어 유닛(89)에 의해 모니터링된다. 결과에 대해 동일한 목적지를 가진 2개 또는 그 이상의 연속된 명령들이 검출될 때, 그 결과가 목적지 레지스터(82) 대신에 파이프라인 레지스터(78)에 연속된 명령들로 기록된다. 이와 같이, 상기 목적지 레지스터(82)의 길고 큰 부하의 버스 대신에 상기 파이프라인 레지스터(78)의 짧고 작은 부하의 버스만이 구동된다.

Description

데이타 처리 시스템 및 이 시스템에서의 연산 실행 방법
발명의 분야
본 발명은 일반적으로 데이타 처리에 관한 것으로, 특히 파이프라인 레지스터들을 이용한 데이타 처리 시스템에서의 전력 감소에 관한 것이다.
발명의 배경
디지탈 신호 처리는 규칙적인 간격들로 샘플링되고 디지탈화된 실시간 신호들의 산술 처리이다. 디지탈 신호 처리기(DSP)는 신호들의 필터링, 믹싱(mixing), 비교와 같은 디지탈 신호 처리 기능들을 위해 사용된다. 일부 데이타 처리 시스템 들에서, DSP는 디지탈 신호 처리 작업을 다루기 위해 호스트 프로세서와 함께 포함될 수 있다. 호스트 프로세서는 예컨대, 마이크로컴퓨터 또는 마이크로프로세서를 포함할 수 있다.
DSP는 전형적으로 수학적 계산들을 실행하기 위해 데이타 산술 논리 유닛(ALU)을 포함한다. 데이타 ALU는 성능을 향상시키기 위해 파이프라이닝될 수 있다. 파이프라이닝된 데이타 ALU는 입력 레지스터들의 레지스터 화일(file), 2개의 실행 유닛들, 누산기 레지스터들, 및 파이프라인 레지스터들을 구비한다. ALU의 기본 연산은 승산/누산(multiply/accumulate : MAC) 연산이다. 통상적으로, 두 이진수들을 승산하고 그 결과를 제 3의 이진수에 가산 또는 누산하는 회로들이 디지탈 신호 처리에 사용된다. 푸리에 변환들, 유한 임펄스 응답 필터들(FIR) 및 무한 임펄스 응답 필터들(IIR) 등과 같은 신호 처리 알고리즘들에서, 하드웨어를 사용하여 MAC 명령을 실행하는 능력을 가지고 있으면 좋다.
데이타 ALU가 FIR 필터를 구현하기 위한 알고리즘에서와 같이, 소정 회수의 반복들 동안에 반복적인 MAC 명령을 실행하고 있을 때는, 승산 연산의 결과가 누산 연산을 위한 하나의 피연산자(operand)로서 사용된다. 다른 피연산자는 누산기 레지스터들 중 하나의 누산기 레지스터에 저장될 수도 있다. 전형적인 데이타 ALU에서는, 누산 연산의 결과가 누산기 레지스터들에 재기록(write back)되거나, MAC 명령의 각각의 반복 동안 하나의 입력 레지스터들 중 하나의 입력 레지스터에 기록될 수 있다. MAC 명령은 소정 회수의 반복들 동안에 실행되며, 매번 누산 연산의 결과가 동일한 누산기 레지스터에 재기록된다. 누산기와 누산기 레지스터 사이의 버스는 비교적 길 수도 있으며, 비교적 큰 용량성 부하를 가질 수도 있다. 그러므로, 각각의 반복 후에 누산기 레지스터에의 재기록은 상당한 양의 전력을 소비할 수 있다.
발명의 개요
따라서, 파이프라인 산술 논리 유닛을 갖는 데이타 처리 시스템이 한 형태로 제공되며, 이 파이프라인 산술 논리 유닛은, 입력 레지스터, 제 1 및 제 2 실행 유닛들, 파이프라인 레지스터 및 제어 회로를 갖는다. 제 1 실행 유닛은 입력 레지스터에 연결되며, 제 1 결과를 구하기 위해 제 1 연산을 실행한다. 파이프라인 레지스터는 제 1 실행 유닛에 연결되며, 제 1 결과를 저장한다. 누산기 레지스터는 제 3 피연산자를 저장한다. 제 2 실행 유닛은 파이프라인 레지스터 및 누산기 레지스터에 연결되며, 제 2 결과를 구하기 위해 제 2 연산을 실행한다. 제어 회로는 데이타 산술 논리 유닛에 제공된 일련의 명령들을 모니터링하며, 제어 회로가 제 2 결과에 대해 동일한 목적지들을 요구하는 일련의 명령들을 검출할 때, 제어 회로는 제 2 결과가 파이프라인 레지스터들에 기록되도록 한다.
다른 실시예에서, 데이타 처리 시스템에서 산술 연산을 실행하는 방법이 제공되며, 이 방법은, 입력 레지스터로부터 제 1 피연산자를 제 1 실행 유닛으로 읽어들이는 단계와, 제 1 결과를 구하기 위해 제 1 피연산자에 대해 제 1 산술 연산을 실행하는 단계와, 제 1 결과를 중간 레지스터에 저장하는 단계와, 제 2 결과를 구하기 위해 제 1 결과에 대해 제 2 산술 연산을 실행하는 단계와, 산술 연산을 실행하기 위한 일련의 명령들을 모니터링하고 연속된 명령들이 제 2 결과에 대해 동일한 목적지들을 가질 때를 검출하며, 두 동일한 목적지들의 검출에 응답하여, 제 2 결과를 중간 레지스터에 저장하는 단계를 포함한다.
이들 및 다른 특징들과 이점들은 첨부 도면들을 참조한 이하의 설명으로부터 명확하게 이해되게 된다.
바람직한 실시예의 설명
일반적으로, 본 발명은 파이프라이닝된 데이타 ALU에서 감소된 전력 소비를 제공한다. MAC 연산 다음에, 동일한 목적지 레지스터로의 불필요한 재기록을 제거함으로써 전력 소비가 감소된다. 데이타 ALU에 공급된 일련의 명령들이 모니터링 된다. 동일한 목적지들을 가진 2개 또는 그 이상의 연속된 명령들이 검출될 때, 그 결과가 연속된 명령들에서 지정된 목적지 레지스터 대신에 파이프라인 레지스터에 기록된다. 이와 같이, 파이프라인 레지스터에 짧고 작은 부하의 버스만이 구동되며, 이에 따라 상당한 전력 감소가 얻어진다.
용어 "표명(assert)" 및 "부정(negate)"은 신호, 상태 비트, 또는 유사 장치가 논리적 참 또는 논리적 거짓 상태임을 언급할 때 각각 사용될 것이다. 논리적 참 상태가 디지탈 논리 레벨 1이라면, 논리적 거짓 상태는 디지탈 논리 레벨 0이 된다. 또한, 논리적 참 상태가 디지탈 논리 레벨 0이면, 논리적 거짓 상태는 디지탈 논리 레벨 1이 된다. "버스"라는 용어는 데이타, 어드레스, 제어, 또는 상태와 같은 하나 또는 그 이상의 여러 타입들의 정보를 전송하는데 사용될 수 있는 복수의 신호들을 언급하는데 사용될 것이다.
본 발명은 제 1 도 내지 4 도를 참조하여 보다 완전하게 설명될 수 있다. 제 1 도 및 제 3 도에서 도시된 각 블럭은 회로를 나타낸다. 제 4 도에 도시된 각 블럭은 흐름도에서 하나 또는 그 이상의 단계들을 나타낸다. 제 1 도에는 본 발명에 따른 데이타 처리 시스템(20)이 블록 형태로 도시되어 있다. 제 1 도에 도시된 실시예에서, 데이타 처리 시스템(20)은 디지탈 신호 처리기(DSP)이며, 단일 집적 회로 상에 위치한다. 다른 실시예에서, 데이타 처리 시스템(20)은 예컨대, 마이크로컴퓨터 또는 마이크로프로세서일 수도 있다. 데이타 처리 시스템(20)은 타이머(22), 호스트 인터페이스(24), 개선된 직렬 동기 인터페이스(ESSI)(26), 직렬 비동기 인터페이스(SCI)(28), 프로그램 RAM(random access memory) 및 명령 캐시(30), X 메모리(32), Y 메모리(34), 어드레스 발생 유닛/직접 메모리 액세스(DMA) 제어기(36), 외부 어드레스 버스 스위치(38), 내부 데이타 버스 스위치(40), DRAM(dynamic random access memory) 및 SRAM(static random access memory) 버스 인터페이스 및 명령 캐시 제어기(42), 외부 데이타 버스 스위치(44), 프로그램 제어 유닛(PCU)(46), 및 데이타 연산 유닛(ALU)(54)을 포함한다. 프로그램 제어 유닛(46)은 프로그램 인터럽트 제어기(48), 프로그램 디코딩 제어기(50), 및 프로그램 어드레스 발생기(52)를 포함한다.
어드레스 버스(56)("YAB"), 어드레스 버스(57)("XAB"), 프로그램 어드레스버스(58)("PAB"), 및 어드레스 버스(59)("DAB")는 어드레스 발생 유닛/DMA 제어기(36)와 외부 어드레스 버스 스위치(38) 사이에 연결되어 있다. 데이타 버스(60)("DDB")는 호스트 인터페이스(24)와 외부 데이타 버스 스위치(44) 사이에 연결되어 있다. 데이타 버스(61)("YDB"), 데이타 버스(62)("XDB"), 프로그램 데이타 버스(63)("PDB") 및 프로그램 데이타 버스(64)("GDB")는 내부 데이타 버스 스위치(40)와 외부 데이타 버스 스위치(44) 사이에 연결되어 있다.
타이머(22)는 내부 또는 외부 타이밍을 사용할 수 있는 3개의 타이머들을 포함하며, 데이타 처리 시스템(20)을 인터럽트하거나 외부 장치에 신호를 공급할 수 있다. 또한, 타이머(22)는 특정 개수의 이벤트들이 발생된 후 DMA 전송을 알리는데 사용될 수 있다. 3개의 타이머들의 각각은 단일의 양방향 핀 또는 단자에 연결되어 있다. 또한, 각 타이머(22)는 버스(57), 버스(59), 프로그램 인터럽트 제어기(48), 및 버스(60)에 연결되어 있다.
호스트 인터페이스(24)는 데이타 처리 시스템(20)과, 마이크로컴퓨터, 마이크로프로세서 또는 DMA 제어기와 같은 다른 장치 사이의 통신에 양방향 인터페이스를 제공한다. 또한, 호스트 인터페이스(24)는 버스(60)를 통해 외부 데이타 버스 스위치(44)에 양방향으로 연결되고, 전역(global) 데이타 버스(64), 프로그램 인터럽트 제어기(48), 어드레스 발생 유닛/DMA 제어기(36), 및 외부 어드레스 버스 스위치(38)에 버스들(57 및 59)을 통해 양방향으로 연결되어 있다. 또한, 호스트 인터페이스(24)는 양방향 데이타 전송들, 어드레스 레지스터 선택들, 및 호스트 프로세서로부터의 제어 통신들을 위해 50개의 외부 핀들 또는 단자들에 양방향으로 연결되어 있다.
개선된 직렬 동기 인터페이스(ESSI)(26)는 예컨대 하나 또는 그 이상의 산업 표준 코덱, DSP(디지탈 신호 처리기), 마이크로프로세서를 포함한 외부 직렬 장치들과의 직렬 통신을 제공하기 위해 12개의 양방향 외부핀들에 연결된다. ESSI(26)는 또한 버스(57), 버스(59), 버스(60)에 연결된 단자들을 가지고 있다.
직렬 통신 인터페이스(SCI)(28)는 외부 장치들과의 직렬 통신을 제공하기 위해 3개의 양방향 외부 핀들에 연결된다. SCI(28)는 또한 버스(57), 버스(59), 버스(60)에 연결된 단자들을 가지고 있다.
제 1 도에 도시된 데이타 처리 시스템(20)의 실시예는 3개의 메모리 공간들, 즉, 프로그램 RAM 및 명령 캐시(30), X 메모리(32), Y 메모리(34)를 가지고 있다. 다른 실시예에서는, 보다 많거나 보다 적은 메모리 공간들이 존재할 수 있다. 프로그램 RAM 및 명령 캐시(30)는 어드레스 버스(58) 및 데이타 버스(63)에 연결되어 있다. X 메모리(32)는 어드레스 버스(57), 어드레스 버스(59), 및 데이타 버스(60), 및 데이타 버스(62)에 연결되어 있다. Y 메모리(34)는 어드레스 버스(56), 어드레스 버스(59), 데이타 버스(60), 및 데이타 버스(61)에 연결되어 있다.
어드레스 발생 유닛/DMA 제어기(36)는 어드레스 버스들(56, 57, 58 및 59)에 연결되어 있다. 어드레스 발생 유닛/DMA 제어기(36)는 타이머(22), 호스트 인터페이스(24), ESSI(26), SCI(28), 프로그램 RAM 및 명령 캐시(30), X 메모리(32), Y 메모리(34), 외부 어드레스 버스 스위치(38), DRAM 및 SRAM 버스 인터페이스, 및명령 캐시 제어기(42)에 메모리 어드레스들을 공급한다. 바람직한 실시예에서, DMA 제어기는 6개의 채널들을 가지고 있다.
DRAM 및 SRAM 버스 인터페이스 및 명령 캐시(42)는 프로그램 어드레스 버스(58) 및 14개의 양방향 외부 핀들에 연결되어 있다. DRAM 및 SRAM 버스 인터페이스 및 명령 캐시(42)는 외부 메인 메모리(도시되지 않음)와 프로그램 제어 유닛(46) 사이의 버퍼 메모리로서 기능한다. 명령 캐시는 자주 사용되는 프로그램 명령들을 저장한다. 프로그램에 의해 요구되는 명령 워드들이 캐시에서 이용 가능할 때, 메인 메모리를 액세스하는데 필요한 시간이 제거되므로 성능이 개선될 수 있다.
내부 데이타 버스 스위치(40)는 데이타 버스(60), 데이타 버스(61), 데이타 버스(62), 프로그램 데이타 버스(63), 및 전역 데이타 버스(64)에 연결되어 있다. 외부 데이타 버스 스위치(44)는 데이타 버스(60), 데이타 버스(61), 데이타 버스(62), 프로그램 데이타 버스(63), 및 전역 데이타 버스(64)를 통해 내부 데이타 버스 스위치(40)에 연결되어 있다. 또한, 외부 데이타 버스 스위치(44)는 데이타 버스(60)를 통해 타이머(22), 호스트 인터페이스(24), ESSI(26), SCI(28)에 연결되어 있다. 내부 데이타 버스 스위치(40)는 버스들 사이의 전송들에 사용된다. 임의의 두 버스들이 내부 데이타 버스 스위치(40)를 통해 함께 접속될 수 있다. 외부 어드레스 버스 스위치(38) 및 외부 데이타 버스 스위치(44)는 임의의 내부 어드레스 버스 및 내부 데이타 버스에 외부 버스들(도시되지 않음)을 각각 연결한다.
프로그램 제어 유닛(46)에서, 프로그램 인터럽트 제어기(48)는 인터럽트 요청들을 중재하며, 타이머(22), 호스트 인터페이스(24), ESSI(26), 및 SCI(28)에 연결되어 있다. 또한, 프로그램 인터럽트 제어기(48)는 전역 데이타 버스(64) 및 프로그램 디코딩 제어기(50)에 양방향으로 연결되어 있다. 프로그램 디코딩 제어기(50)는 각각 24 비트 명령을 디코딩하며, 프로그램 인터럽트 제어기(48) 및 프로그램 어드레스 발생기(52)에 양방향으로 연결되어 있다. 프로그램 어드레스 발생기(52)는 프로그램 어드레스 발생, 시스템 스택, 및 루프 제어에 필요한 모든 하드웨어를 포함한다. 또한, 프로그램 어드레스 발생기(52)는 프로그램 어드레스 버스(58) 및 프로그램 데이타 버스(63)에 연결되어 있다.
데이타 산술 논리 유닛(ALU)(54)은 프로그램 데이타 버스(63), 데이타 버스(61), 및 데이타 버스(62)에 연결되어 있다. 데이타 ALU(54)는 데이타 피연산자들에 대해 모든 산술 연산 및 논리 연산을 실행한다. 데이타 ALU(54)는 버스들(61, 62)을 통해 판독 또는 기록될 수 있는 레지스터들을 포함한다. 데이타 ALU(54)는 또한 버스(63) 및 버스(60)에 연결되어 있다.
클럭 발생 회로들(도시되지 않음)은 제 1 도에 도시된 모든 블럭들에 클럭 신호들을 공급한다. 제 1 도에 도시되지 않은 데이타 처리 시스템(20)에 테스트 회로가 존재한다.
제 2 도에는 제 1 도의 데이타 처리 시스템(20)의 데이타 산술 논리 유닛(ALU)(54)이 블럭 형태로 도시되어 있다. 데이타 ALU(54)는 데이타 처리 시스템(20)을 위한 산술 연산 및 논리 연산을 실행한다. 데이타는 데이타 ALU(54)에서 부호를 지닌 분수의 형식으로 저장 및 처리된다. 데이타 ALU(54)는 레지스터화일(70), 승산기(76), 파이프라인 레지스터들(78, 90 및 96), 누산기 및 라운딩 유닛(80), 누산기 레지스터들(82), 시프터/리미터(86), 멀티플렉서(88), 제어 회로(89), 배럴 시프터 및 비트 필드 유닛(92), 및 누산기 시프터(94)를 포함한다. 레지스터 화일(70)은 레지스터들(71 내지 74)을 포함한다. 누산기 레지스터들(82)은 누산기 레지스터(83)와 누산기 레지스터(84)를 포함한다.
레지스터 화일들(70)은 X 메모리(32), Y 메모리(34)로부터, 또는 외부 메모리 위치(도시되지 않음)로부터 데이타 피연산자들을 수신하기 위해 데이타 버스들(61 및 62)에 연결되어 있다. 레지스터들(71-74)의 각 레지스터는 24 비트 피연산자를 저장할 수 있는 판독/기록 레지스터이다. 레지스터들(71-74)은 데이타 버스들(61 및 62)과 데이타 ALU(54) 사이에서 입력 버퍼 레지스터들로서 기능한다. 레지스터 화일(70)의 출력 단자들은 승산기(76)의 입력 단자들 및 멀티플렉서(88)의 입력 단자들에 연결되어 있다. 승산기(76)는 실행 유닛이며, 수정된 부스(Booth) 숭산기, 웰리스 트리(Wallace Tree) 등의 종래의 어레이 승산기를 구비한다. 승산기(76)는 분수들로 표현된 피연산자들에 대해 승산 연산들을 실행한다. 승산/누산 연산에서, 승산 연산의 중간 결과가 파이프라인 레지스터들(78)에 제공되며, 이 파이프라인 레지스터(78)는 그 중간 결과를 누산기 및 라운딩 유닛(80)에 제공하기 전에 임시로 저장한다. 누산기 및 라운딩 유닛(80)은 또한 데이타 ALU(54)내에서 실행 유닛으로서 기능한다.
데이타 ALU(54)는 파이프라이닝되며, 모든 MAC 연산이 두 클럭 사이클들에서 실행된다. 제 1 클럭 사이클에서, 승산기(76)에 의해 승산이 실행되고, 그 중간 결과가 파이프라인 레지스터들(78)에 저장된다. 제 2 클럭 사이클에서, 누산기는 그 중간 결과에 대해 가산 또는 감산된다. 새로운 명령어가 모든 클럭 사이클에서 시작될 수 있다. 라운딩은 명령어에 지정되어 있으면 실행된다. 라운딩은 컨버젼트 라운딩(convergent rounding; 가장 인접한 짝수로 라운딩) 또는 2의 보수 라운딩이다. 라운딩의 타입은 프로그램 제어 유닛(46)의 상태 레지스터의 라운딩 비트에 의해 지정된다. 프로그램 제어 유닛(46)은 제 1 도에 도시되어 있다. 라운딩된 누산기 레지스터의 비트는 상태 레지스터의 스케일링 모드 비트들에 의해 지정된다. 파이프라인 레지스터들(78)은 승산 연산의 중간 결과를 수신하기 위해 승산기(76)의 출력 단자들에 연결되어 있다. 파이프라인 레지스터들(78)의 출력 단자들은 그 중간 결과를 누산기 및 라운딩 유닛(80)의 입력 단자들에 제공한다. 중간 결과는 누산기 레지스터들(83, 84) 중 한 레지스터에 저장된 피연산자에 부가된다. 파이프라인 레지스터들(96)은 누산기 레지스터(82)의 출력 단자들에 연결된 입력 단자들, 및 누산기 레지스터들(83 또는 84) 중 한 레지스터로부터 누산기 및 라운딩 유닛(80)으로 데이타를 전송하기 위해 누산기 및 라운딩 유닛(80)의 입력 단자들에 연결된 출력 단자들을 가지고 있다. 최종 결과는 전형적으로 동일한 레지스터, 즉 누산기 레지스터(83 또는 84)에 재저장된다. 그러나, 최종 결과는 레지스터 화일(70)의 레지스터에 재기록될 수도 있다.
누산기 레지스터들(83 및 84)은 각각 총 56 비트들을 형성하기 위해 3개의 연결된 레지스터들을 구비한다. 누산기 레지스터(83)에서, "A0"로 표기된 24 비트 범용 판독/기록 레지스터가 24 비트의 최하위 곱(LSP; least significant product)을 저장한다. A0는 누산기 레지스터(83)의 비트 0 내지 비트 23을 포함하고 있다. "Al"으로 표기된 24 비트 판독/기록 레지스터는 24 비트의 최상위 곱(MSP; most significant product)을 저장한다. Al은 누산기 레지스터(83)의 비트 24 내지 비트 47을 포함하고 있다. "A2"로 표기된 8 비트 판독/기록 레지스터는 부호 확장(EXT) 및 오버플로우 레지스터이다. A2는 누산기 레지스터(83)의 비트 48 내지 비트 56을 포함한다. 누산기 레지스터(84)에서, "B0"로 표기된 24 비트 범용 판독/기록 레지스터는 24 비트 LSP를 저장한다. B0는 누산기 레지스터(84)의 비트 0 내지 비트 23을 포함하고 있다. "B1"로 표기된 24 비트 판독/기록 레지스터는 24 비트 MSP를 저장한다. B1은 누산기 레지스터(84)의 비트 24 내지 비트 47을 포함한다. "B2"로 표기된 8 비트 판독/기록 레지스터는 부호 확장 및 오버플로우 레지스터로서 기능한다. B2는 누산기 레지스터(84)의 비트 48 내지 비트 56으로 구성된다. 누산기 레지스터들(82) 및 레지스터 화일(70)은 데이타 처리 시스템(20)의 프로그래밍 모델에 속한다.
누산기 레지스터들(82)의 출력 단자들은 누산기 레지스터들(82)로부터 시프터/리미터(86)로 56 비트 데이타를 전송하기 위해 시프터 리미터(86)의 입력 단자들에 연결되어 있다. 시프터/ 리미터(86)는 2개의 전형적인 비동기 병렬 시프터/리미터들을 구비한다. 한 시프터/리미터는 데이타 버스(61)에 연결되며, 다른 시프터/리미터는 데이타 버스(62)에 연결되어 있다. 리미터들은 오버플로우로 인한 에러들을 최소화하는데 사용된다. 확장 레지스터들(A2 및 B2)이 사용 중에 있을 때 리미팅(limiting)이 일어나며, 누산기 레지스터(83 또는 84)의 내용이 데이타버스(61) 또는 데이타 버스(62)를 통해 전송되게 된다. 리미터는 한정된 데이타 값을 최대 크기로 대체하게 된다. 확장 레지스터들(A2 및 B2)이 사용되고 있지 않으면, 리미터들이 디스에이블된다. 2개의 데이타 리미터들이 또한 긴 워드 피연산자들에 대해 하나의 48 비트 데이타 리미터를 형성하도록 조합될 수 있다. 시프터/리미터(86)의 데이타 시프터들은 시프트되지 않은(스케일링되지 않은) 데이타를 통과시킬 뿐만 아니라, 데이타를 1 비트 왼쪽(스케일 업) 또는 1 비트 오른쪽(스케일 다운)으로 시프트시킬 수 있다. 시프터들은 프로그램 코드를 수정하지 않고 고 정점 데이타의 다이나믹 스케일링을 허용한다. 예컨대, 데이타 처리 시스템(20)에서 구현될 고속 푸리에 변환들과 같은 블록 부동 소수점(block floating-point) 알고리즘들을 허용한다.
누산기 시프터(94)는 누산기 레지스터들(82)의 출력 단자들에 연결된 입력 단자들과, 누산기 및 라운딩 유닛(80)에 연결된 출력 단자들을 갖는다. 누산기 시프터(94)는 누산기 레지스터들(82)의 정보를 시프트하기 위한 비동기 병렬 시프터이다. 누산기 시프터(94)는 누산기 및 라운딩 유닛(80)에 그 시프트된 정보를 다시 제공한다. 제어 회로(89)는 누산기 시프터(94), 시프터/ 리미터(86), 및 배럴 시프터 및 비트 필드 유닛(92)에 연결되어 있다. 제어 회로(89)는 버스(63)를 통해 프로그램 제어 유닛(46)으로부터 수신된 명령들에 응답하여, 데이타 ALU(54)에 대한 제어 기능을 실행한다. 예컨대, 제어 회로(89)는 데이타 ALU(54)가 16 비트 모드일 때 실행된 MAC 명령에 요구되는 시프트 동작들을 결정한다.
멀티플렉서(88)는 버스(63) 및 레지스터 화일(70)에 연결된 입력 단자들을갖는다. 멀티플렉서(88)의 출력 단자들은 파이프라인 레지스터들(90)의 입력 단자들에 연결되어 있다. 파이프라인 레지스터들(90)의 출력 단자들은 배럴 시프터 및 비트 필드 유닛(92)에 연결되어 있다. 배럴 시프터 및 비트 필드 유닛(92)은 누산기 레지스터들(82)의 입력 단자들에 연결되어 있다. 배럴 시프터 및 비트 필드 유닛(92)은 56 비트 병렬 양방향 시프터를 포함하며, 멀티 비트 왼쪽 시프트, 멀티 비트 오른쪽 시프트, 1 비트 로테이팅(왼쪽 또는 오른쪽), 비트 필드 병합, 삽입 및 추출, 카운트 리딩 비트 정상화, 및 AND, OR, 배타적 OR, 및 NOT 등의 논리 연산들을 실행한다. 배럴 시프터 및 비트 필드 유닛(92)은 24 비트 및 16 비트 연산 모드들에 대해 이들 모든 연산들을 실행할 수 있다. 16 비트 모드에서, 비트 필드 연산들은 16 비트 데이타에 대한 적절한 비트 위치를 실행한다.
데이타 ALU(54)는 24 비트 및 16 비트 산술에 대한 완전한 해를 제공한다. 전체 명령 세트는 다중 정밀 산술을 포함하는, 24 비트 모드 또는 16 비트 모드로 실행될 수 있다. 동일한 명령들 및 하드웨어가 두 모드들에서 사용된다. 모드들 간의 천이는 상태 레지스터 내의 비트를 변경시킴으로써 실행된다. 연산의 16 비트 모드는 데이타 ALU(54)의 모든 연산이 24 비트 모드로 실행될 수 있도록 한다. 예컨대, 16 비트 모드에서, 데이타 ALU(54)는 라운딩, 배정도 승산(double precision multiply)을 실행하여 이동 및 시프트시킨다. 또한, 모든 비트 필드 연산들은 16 비트 모드로 실행될 수 있다.
16 비트 모드에서 이동하는 동안, 데이타는 버스들(61, 62 및 63)에 대해 24 비트 또는 48 비트로 기록 및 판독된다. 16 비트 이동은 없다. 버스(61 및 62)로부터 누산기 레지스터들(82) 중 한 레지스터로 데이타를 이동시킬 때, 버스(61)로부터 16개의 최하위 비트들은 누산기 레지스터들(82) 중 선택된 누산기 레지스터의 비트 32 내지 비트 47에 위치되며 제로는 누산기 레지스터의 비트 24 내지 비트 31에 로딩되게 된다. 버스(62)로부터 16개의 최하위 비트들은 비트 8 내지 비트 23에 위치하며, 비트 0 내지 비트 7에 제로들이 로딩되게 된다. 비트 48 내지 비트 56은 부호 확장으로 로딩되게 된다.
레지스터들(71 내지 74) 중 하나의 레지스터에 버스(61 또는 62)로부터의 데이타를 이동시킬 때, 버스 상의 16개의 최하위 비트들이 목적지 레지스터의 16개의 최상위 비트들로 로딩되게 된다. 레지스터의 8개의 최하위 비트들로 제로가 로딩된다. 레지스터들(71 내지 74) 중 두 레지스터들을 연결하여 형성된 레지스터와 같이 48 비트 레지스터에 버스(61 또는 62)로부터의 데이타를 이동시킬 때, 버스(62)의 16개의 최하위 비트들은 레지스터들(72 또는 74)의 16 최상위 비트들로 로딩되며, 버스(61)의 16 최하위 비트들은 레지스터들(71 또는 73)의 16 최상위 비트들로 로딩된다.
승산기(76), 누산기 및 라운딩 유닛(80), 및 배럴 시프터 및 비트 필드 유닛(92)과 같은 실행 유닛들에 입력되는 데이타의 경우에, 이 데이타는 소정 배열로 실행 유닛 내에 정렬 및 위치되며 16 비트 모드가 데이타 처리 시스템(20)의 사용자에 투명하도록 한다. 16 비트 산술 연산들을 실행할 때, 분수 산술의 사용은 정렬을 더 용이하게 한다. 여러 멀티플렉싱 및 시프트 회로들이 16 비트 모드에 대해 필요한 정렬을 실현하는데 사용된다. 16 비트 모드에서, 산술 연산의 라운딩은24 비트 모드에서 달성된 바와 같이 A0/B0 대신에 A1/B1 누산기 부분의 비트 15에 대해 실행된다. 따라서, 데이타 ALU(54)의 시프트/리미팅 및 스케일링이 영향을 받게 된다. 데이타 ALU(54)를 이용하여 16 비트 MAC 명령을 실행하는데 필요한 단계들이 제 3 도에서 설명된다.
제 2 도 및 3 도에 있어서, 제 1 의 16 비트 피연산자는 레지스터 화일(70)의 레지스터, 예컨대, "X0" 명칭의 레지스터(71)에 공급된다. 제 1 피연산자는 X 메모리(32) 또는 Y 메모리(34)로부터 공급될 수도 있다(제 1 도). 제 2 의 16 비트 피연산자는 레지스터 화일(70)의 또 다른 레지스터, 예컨대 "Y0" 명칭의 레지스터(73)에 공급된다. 제 1 및 제 2 피연산자들은 24 비트 레지스터들(71, 73)의 16 개의 최상위 비트들로 저장된다. 레지스터들(71, 73)의 8개의 최하위 비트들은 부정되거나, 본 실시예에서 논리 제로들로 기록된다. 제 1의 16 비트 피연산자 및 제 2의 16 비트 피연산자는 32 비트의 곱을 얻기 위해 승산기(76)에서 함께 승산된다. 32 비트의 곱은 중간 결과 레지스터의 32개의 최상위 비트들에 저장된다. 데이타 ALU(54)에서, 파이프라인 레지스터들(78)은 중간 결과 레지스터로서 기능한다. 32 비트의 곱은 제 3 피연산자에 가산되며, 이 피연산자는 누산기 레지스터들(83 또는 84) 중 한 레지스터 내에 저장된다. 가산에 앞서, 제 3 피연산자는 32 비트 곱의 포맷을 정렬 또는 매칭시키기 위해 누산기 시프터(94)에서 시프트되며, 누산기 및 라운딩 유닛(80)에 공급된다. 가산 결과는 동일의 누산기 레지스터(83 또는 84)에 재기록된다.
데이타 ALU가 FIR 필터를 구현하기 위해 알고리즘 등의 MAC 명령을 실행할때, 그 승산 명령의 결과가 누산 명령용 피연산자로서 사용된다. MAC 명령은 소정의 반복 회수 동안 실행된다. 종래 기술에서, 그 최종 결과는 누산기 레지스터들(82)로 재기록되거나 MAC 명령의 각 반복에 대해 레지스터 화일(70)내의 레지스터들 중 한 레지스터에 기록된다. 각각의 반복 후에, 누산 연산의 결과는 동일한 누산기 레지스터에 재기록된다. 누산기와 누산기 레지스터간의 버스는 비교적 길고 큰 부하를 가질 수도 있다. 따라서, 각각의 반복 후에 누산기 레지스터로의 재기록은 상당한 전력을 소비하게 한다.
데이타 ALU(54)에서의 전력 소비를 줄이기 위해, 누산기 레지스터들(82)의 동일한 누산기 레지스터에의 불필요한 재기록은 생략된다. 제어 회로(89)는 데이타 ALU(54)에 공급될 일련의 명령들을 모니터링하며, 연속된 명령들이 그 최종 결과에 대한 동일한 목적지들을 가진 경우를 검출한다. 동일한 레지스터가 연속된 명령들의 목적지일 때마다, 그 결과는 파이프라인 레지스터(78)에만 기록되며, 연속된 명령들로 명칭된 목적지 레지스터에는 기록되지 않는다. 이와 같이, 누산기 레지스터에 대해 길고 큰 부하의 버스 대신에 파이프라인 레지스터(78)에 대한 짧고 작은 부하의 버스만이 구동되어 상당한 전력 감소를 실현한다.
제 4 도에는 제 1 도의 프로그램 제어 유닛(46)의 상태 레지스터(95)가 블록 형태로 도시되어 있다. 상태 레지스터(95)는 전형적인 판독/기록 24 비트 레지스터이다. "SA" 명칭의 상태 비트(97)는 데이타 ALU(54)가 24 비트 산술 또는 16 비트 산술을 실행하는지를 제어한다. 제어 비트(97)가 표명될 때, 16 비트 연산 모드가 도입된다. 상태 비트(97)는 데이타 처리 시스템(20)의 리셋 동안에 클리어된다.
본 발명의 바람직한 실시예를 설명하였지만, 당업자들은 본 발명이 여러 가지 방식들로 수정될 수 있고 다른 실시예가 있을 수 있음을 알 수 있다. 예컨대, 설명된 실시예에서, 동일한 하드웨어로 동작되는 16 비트 모드 및 24 비트 모드가 개시된다. 다른 실시예에서, 피연산자의 비트 번호도 다를 수 있으며, 동일 하드웨어로 지원된 모드 번호도 다를 수 있다. 또한, 설명된 실시예에서, 특정 레지스터들은 특정 비트 번호 및 특정 비트 구조를 가지고 있다. 다른 실시예에서, 다른 크기의 레지스터들, 다른 개수의 레지스터들, 또는 레지스터 비트 필드들이 사용된다. 따라서, 청구 범위에 의해, 본 발명의 취지 및 범위에 속하는 모든 수정안이 커버된다.
제 1 도는 본 발명에 따른 데이타 처리 시스템을 블록 형태로 도시한 도면.
제 2 도는 제 1 도의 데이타 처리 시스템의 데이타 산술 논리 유닛을 블록 형태로 도시한 도면.
제 3 도는 본 발명의 일실시예에 따른 여러 레지스터들에서의 16 비트 승산/누산 연산 및 데이타 정렬을 나타낸 도면.
제 4 도는 제 1 도의 프로그램 제어 유닛의 상태 레지스터를 블록 형태로 도시한 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
20 : 데이타 처리 시스템 22 : 타이머
78, 90, 96 : 파이프라인 레지스터

Claims (4)

  1. 파이프라인 산술 논리 유닛을 갖는 데이타 처리 시스템에 있어서,
    상기 파이프라인 산술 논리 유닛은,
    입력 레지스터와;
    상기 입력 레지스터에 연결되며, 제 1 결과를 구하기 위해 제 1 산술 연산을 실행하는 제 1 실행 유닛과;
    상기 제 1 실행 유닛에 연결되며, 상기 제 1 결과를 저장하는 파이프라인 레지스터와;
    제 3 피연산자를 저장하는 누산기 레지스터와;
    상기 파이프라인 레지스터 및 상기 누산기 레지스터에 연결되며, 제 2 결과를 구하기 위해 제 2 산술 연산을 실행하는 제 2 실행 유닛과;
    상기 파이프라인 산술 논리 유닛에 제공되는 일련의 명령들을 모니터링하는 제어 회로로서, 상기 제 2 결과에 대해 동일한 목적지를 요구하는 상기 일련의 명령들 중 연속된 명령들을 상기 제어 회로가 검출할 때, 상기 제어 회로는 상기 제 2 결과가 상기 연속된 명령들에 의해 요구되는 동일한 목적지 대신에 상기 파이프라인 레지스터에 기록되도록 하는, 상기 제어 회로를 구비하며,
    그것에 의해 상기 파이프라인 산술 논리 유닛에서 전력 소비가 감소되는, 데이타 처리 시스템.
  2. 데이타 처리 시스템에서 산술 연산을 실행하는 산술 연산 실행 방법에 있어서,
    입력 레지스터로부터의 제 1 피연산자를 제 1 실행 유닛으로 읽어들이는 단계와;
    제 1 결과를 구하기 위해 상기 제 1 피연산자에 대해 제 1 산술 연산을 실행하는 단계와,
    상기 제 1 결과를 중간 레지스터에 저장하는 단계와;
    제 2 결과를 구하기 위해 상기 제 1 결과에 대해 제 2 산술 연산을 실행하는 단계와;
    상기 산술 연산을 실행하기 위한 일련의 명령들을 모니터링하고, 연속된 명령들이 상기 제 2 결과에 대해 동일한 목적지를 가질 때를 검출하고, 상기 제 2 결과에 대해 상기 연속된 명령들 내의 두 동일한 목적지의 검출에 응답하여, 상기 동일한 목적지들 대신에 상기 중간 레지스터에 상기 제 2 결과를 저장하는 단계를 포함하며,
    그것에 의해 데이타 처리 시스템에서 전력 소비를 감소시키는, 산술 연산 실행 방법 .
  3. 파이프라인 산술 논리 유닛을 가진 데이타 처리 시스템에서 승산/누산 명령들을 실행하는 방법으로서, 상기 파이프라인 산술 논리 유닛은 제 1 및 제 2 입력 레지스터들과, 제 1 및 제 2 실행 유닛들과, 파이프라인 레지스터와, 목적지 레지스터를 가지며, 상기 방법은,
    상기 제 1 및 제 2 입력 레지스터들로부터의 제 1 및 제 2 피연산자들을 각각 상기 제 1 실행 유닛으로 읽어들이는 단계와;
    제 1 결과를 구하기 위해 상기 제 1 실행 유닛에서 상기 제 1 피연산자와 상기 제 2 피연산자를 승산하는 단계와;
    상기 제 1 결과를 상기 파이프라인 레지스터에 저장하는 단계와;
    상기 목적지 레지스터로부터 제 3 피연산자를 판독하는 단계와;
    제 2 결과를 구하기 위해 상기 제 2 실행 유닛에서 상기 제 3 피연산자에 상기 제 1 결과를 가산하는 단계와;
    승산/누산 명령들을 실행하기 위한 일련의 명령들을 모니터링하고, 연속된 명령들이 상기 제 2 결과에 대해 동일한 목적지들을 가질 때를 검출하며, 두 동일한 목적지들의 검출에 응답하여, 상기 동일한 목적지들 대신에 상기 파이프라인 레지스터에 상기 제 2 결과를 저장하는 단계를 포함하며,
    그것에 의해, 상기 파이프라인 산술 논리 유닛에서 전력 소비가 감소되는, 방법.
  4. 데이타 처리 시스템에 있어서,
    제 1 버스를 통해 제 1 기억 소자에 연결되고, 제 2 버스를 통해 제 2 기억 소자에 연결된 제 1 실행 유닛으로서, 상기 제 1 버스가 상기 제 2 버스보다 비교적 큰 부하를 가지는, 상기 제 1 실행 유닛과;
    상기 제 1 실행 유닛에 제공되는 일련의 명령들을 모니터링하는 제어 회로로서, 상기 일련의 명령들 중 두 연속된 명령들이 상기 제 1 실행 유닛으로부터의 결과가 목적지로서 상기 제 1 기억 소자를 가질 것을 요구함을 상기 제어 회로가 검출할 때, 상기 제어 회로는 상기 연속된 명령들에 의해 요구되는 상기 제 1 기억 소자 대신에 상기 제 2 기억 소자에 상기 결과가 기록되도록 하는, 상기 제어 회로를 구비하며,
    그것에 의해, 데이타 처리 시스템에서 전력 소비가 감소되는, 데이타 처리 시스템.
KR1019950051134A 1994-12-22 1995-12-18 데이타처리시스템및이시스템에서의연산실행방법 KR100446564B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US361,405 1994-12-22
US08/361,405 US5666300A (en) 1994-12-22 1994-12-22 Power reduction in a data processing system using pipeline registers and method therefor

Publications (2)

Publication Number Publication Date
KR960024896A KR960024896A (ko) 1996-07-20
KR100446564B1 true KR100446564B1 (ko) 2004-11-03

Family

ID=23421909

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950051134A KR100446564B1 (ko) 1994-12-22 1995-12-18 데이타처리시스템및이시스템에서의연산실행방법

Country Status (4)

Country Link
US (1) US5666300A (ko)
KR (1) KR100446564B1 (ko)
CN (1) CN1132879A (ko)
GB (1) GB2296118B (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870581A (en) * 1996-12-20 1999-02-09 Oak Technology, Inc. Method and apparatus for performing concurrent write operations to a single-write-input register file and an accumulator register
JP2000039995A (ja) * 1998-06-25 2000-02-08 Texas Instr Inc <Ti> 高性能マイクロプロセッサで使用するためのフレキシブル累算レジスタファイル
KR100325430B1 (ko) * 1999-10-11 2002-02-25 윤종용 상이한 워드 길이의 산술연산을 수행하는 데이터 처리장치 및 그 방법
US7890566B1 (en) * 2000-02-18 2011-02-15 Texas Instruments Incorporated Microprocessor with rounding dot product instruction
US20030144826A1 (en) * 2002-01-29 2003-07-31 Mandell Michael I. Register repositioning method for functional verification systems
US20040015676A1 (en) 2002-07-17 2004-01-22 Pierre-Yvan Liardet Sharing of a logic operator having a work register
US7131017B2 (en) * 2002-08-16 2006-10-31 Carnegie Mellon University Programmable pipeline fabric having mechanism to terminate signal propagation
US7730292B2 (en) * 2003-03-31 2010-06-01 Hewlett-Packard Development Company, L.P. Parallel subword instructions for directing results to selected subword locations of data processor result register
AT413895B (de) * 2003-09-08 2006-07-15 On Demand Informationstechnolo Digitale signalverarbeitungseinrichtung
US8015229B2 (en) * 2005-06-01 2011-09-06 Atmel Corporation Apparatus and method for performing efficient multiply-accumulate operations in microprocessors
US8307196B2 (en) * 2006-04-05 2012-11-06 Freescale Semiconductor, Inc. Data processing system having bit exact instructions and methods therefor
JP4893154B2 (ja) * 2006-08-21 2012-03-07 富士通セミコンダクター株式会社 画像処理装置及び画像処理方法
US7797516B2 (en) * 2007-03-16 2010-09-14 Atmel Corporation Microcontroller with low-cost digital signal processing extensions
US8370606B2 (en) * 2007-03-16 2013-02-05 Atmel Corporation Switching data pointers based on context
US20110055303A1 (en) * 2009-09-03 2011-03-03 Azuray Technologies, Inc. Function Generator
US20110153995A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Arithmetic apparatus including multiplication and accumulation, and dsp structure and filtering method using the same
US9483266B2 (en) * 2013-03-15 2016-11-01 Intel Corporation Fusible instructions and logic to provide OR-test and AND-test functionality using multiple test sources
US9886277B2 (en) 2013-03-15 2018-02-06 Intel Corporation Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources
CN109710559A (zh) * 2016-11-03 2019-05-03 北京中科寒武纪科技有限公司 Slam运算装置和方法
US11144367B2 (en) 2019-02-08 2021-10-12 International Business Machines Corporation Write power optimization for hardware employing pipe-based duplicate register files
US10901492B1 (en) * 2019-03-29 2021-01-26 Amazon Technologies, Inc. Power reduction in processor pipeline by detecting zeros
US11579843B2 (en) * 2020-06-15 2023-02-14 Micron Technology, Inc. Bit string accumulation in multiple registers
CN113504893B (zh) * 2021-07-23 2022-08-26 河南亿秒电子科技有限公司 一种智能芯片架构和高效处理数据的方法
CN114237550B (zh) * 2021-11-10 2023-10-13 电子科技大学 一种基于Wallace树的多输入移位求和累加器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04119430A (ja) * 1990-09-11 1992-04-20 Mitsubishi Electric Corp パイプライン制御方式
US5204828A (en) * 1989-02-10 1993-04-20 Intel Corporation Bus apparatus having hold registers for parallel processing in a microprocessor
JPH05174050A (ja) * 1991-12-26 1993-07-13 Matsushita Electric Ind Co Ltd 級数演算装置
KR930702716A (ko) * 1991-07-01 1993-09-09 세끼자와 다다시 곱셈-합 연산장치
JPH05257683A (ja) * 1992-03-16 1993-10-08 Sharp Corp 大規模集積回路のパイプライン構造
JPH06282418A (ja) * 1993-03-30 1994-10-07 N T T Idou Tsuushinmou Kk 演算装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8401807D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Pipelined data processing apparatus
US4575812A (en) * 1984-05-31 1986-03-11 Motorola, Inc. X×Y Bit array multiplier/accumulator circuit
GB2204431A (en) * 1987-04-25 1988-11-09 Ferranti Plc Digital signal processing and transducer array beamforming
US4843585A (en) * 1987-09-14 1989-06-27 Motorola, Inc. Pipelineable structure for efficient multiplication and accumulation operations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204828A (en) * 1989-02-10 1993-04-20 Intel Corporation Bus apparatus having hold registers for parallel processing in a microprocessor
JPH04119430A (ja) * 1990-09-11 1992-04-20 Mitsubishi Electric Corp パイプライン制御方式
KR930702716A (ko) * 1991-07-01 1993-09-09 세끼자와 다다시 곱셈-합 연산장치
JPH05174050A (ja) * 1991-12-26 1993-07-13 Matsushita Electric Ind Co Ltd 級数演算装置
JPH05257683A (ja) * 1992-03-16 1993-10-08 Sharp Corp 大規模集積回路のパイプライン構造
JPH06282418A (ja) * 1993-03-30 1994-10-07 N T T Idou Tsuushinmou Kk 演算装置

Also Published As

Publication number Publication date
KR960024896A (ko) 1996-07-20
GB9525824D0 (en) 1996-02-21
GB2296118B (en) 1999-10-06
CN1132879A (zh) 1996-10-09
GB2296118A (en) 1996-06-19
US5666300A (en) 1997-09-09

Similar Documents

Publication Publication Date Title
KR100446564B1 (ko) 데이타처리시스템및이시스템에서의연산실행방법
JP3759647B2 (ja) 24ビットおよび16ビット算術演算の双方を実行するための装置および方法
US4740893A (en) Method for reducing the time for switching between programs
US5655133A (en) Massively multiplexed superscalar Harvard architecture computer
KR930004214B1 (ko) 데이타 처리 시스템
US4862407A (en) Digital signal processing apparatus
EP1001335B1 (en) Data processing unit with coprocessor interface
US5043867A (en) Exception reporting mechanism for a vector processor
JPH10134036A (ja) マルチメディア信号プロセッサの単一命令多重データ処理
WO2007002408A2 (en) Computer processor pipeline with shadow registers for context switching, and method
JPH10187438A (ja) 乗算器の入力に対する遷移を減少させる方法
JP2001501330A (ja) デジタル信号処理集積回路アーキテクチャ
JPS6231379B2 (ko)
US7308559B2 (en) Digital signal processor with cascaded SIMD organization
RU2359315C2 (ru) Микропроцессор гибридный
US20030005261A1 (en) Method and apparatus for attaching accelerator hardware containing internal state to a processing core
US5903479A (en) Method and system for executing denormalized numbers
US5958000A (en) Two-bit booth multiplier with reduced data path width
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US7111155B1 (en) Digital signal processor computation core with input operand selection from operand bus for dual operations
EP2267596B1 (en) Processor core for processing instructions of different formats
US5546551A (en) Method and circuitry for saving and restoring status information in a pipelined computer
JPH10143494A (ja) スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理
US6820189B1 (en) Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
JPH08221257A (ja) データ処理装置用除算器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120807

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130809

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee