KR19980018919A - 신호처리장치 (signal processor) - Google Patents
신호처리장치 (signal processor) Download PDFInfo
- Publication number
- KR19980018919A KR19980018919A KR1019970040218A KR19970040218A KR19980018919A KR 19980018919 A KR19980018919 A KR 19980018919A KR 1019970040218 A KR1019970040218 A KR 1019970040218A KR 19970040218 A KR19970040218 A KR 19970040218A KR 19980018919 A KR19980018919 A KR 19980018919A
- Authority
- KR
- South Korea
- Prior art keywords
- flag
- data
- control
- signal
- signal processing
- Prior art date
Links
- 230000014759 maintenance of location Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 16
- 101100328518 Caenorhabditis elegans cnt-1 gene Proteins 0.000 description 14
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 101100108191 Vibrio parahaemolyticus serotype O3:K6 (strain RIMD 2210633) add gene Proteins 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
조건이 딸린 분기명령을 사용하지 않고, 2개의 서로 다른 연산을 플래그신호로 전환해서 실행함에 따라 적은 사이클로 처리를 행하는 신호처리장치를 제공하기 위해서, 이 신호처리장치는, 명령해독기와 제어선택회로와 선택회로와 연산기를 설치하고 있다. 명령해독기는, 명령을 해독하고 2개의 제어신호를 출력한다. 제어선택회로는, 명령해독기에 접속되고, 플래그 보유회로에 저장된 플래그신호에 따라서, 제어신호중의 어느 하나를 선택해서 출력한다. 선택회로는, 제어선택회로가 출력하는 제어신호에 따라서, 복수의 입력데이타중의 어느 하나를 선택해서 출력한다. 연산기는, 선택회로가 출력하는 해독기에 대해서 연산을 수행한다.
Description
본 발명은, 명령에 따라서 데이터의 처리를 수행하는 신호처리장치, 특히, 플래그값에 따라서 상이한 처리가 가능한 신호처리장치에 관한 것이다.
명령에 따라서 데이터의 처리를 수행하는 신호처리장치(프로세서)는, 명령의 집합인 프로그램에 의해서, 다양한 처리나 기능을 실현할 수 있기 때문에, 다양한 기기에 널리 사용되고 있다.
신호처리장치는, 명령해독기, 연산기, 데이터보유회로 등으로 구성되어 있다. 그리고, 명령해독기가 명령을 해독해서 제어신호를 생성하고, 그 제어신호에 의해서, 데이터보유회로로부터 데이터가 읽혀지고, 연산기는 읽혀진 데이터에 대해서, 제어신호로 지시된 연산을 행하고, 연산결과를 제어신호에 따라서 데이터보유회로에 저장한다. 이러한 처리가 각각의 명령에 대해서 수행되는 것에 의해, 다양한 기능이 실현된다.
이러한 신호처리장치를 사용해서 다음에 나타내는 처리를 수행하는 경우에 대해서 생각한다.
(처리1)
if (A≥B) then C=A;
else C=B;
(처리1)은, 데이터(A)와 데이터(B)를 비교해서, 데이터(A)쪽이 큰 경우는, 데이터(C)로서 데이터(A)를 대입하고, 그렇지 않으면, 데이터(C)로서 데이터(B)를 대입하는 처리이다. 결국, 조건에 따라서 처리가 다르다.
이것을 명령을 사용해서 처리하는 경우, 조건이 딸린 분기명령이라고 불리는 명령을 사용한다.
조건이 딸린 분기명령은, 앞의 연산의 결과를 나타내는 플래그가 지정된 값인 경우만 분기하는 명령이다.
(처리1)은 다음과 같은 명령의 조합(프로그램)으로 실현할 수 있다.
cmp r1, r2
bge L1
nop
mov r3, r2
ba L2
nop
L1:
mov r3, r1
L2:
이 프로그램에 있어서, 부호(r1,r2,r3)는 연산에서 사용하는 데이터를 저장하는 레지스터를 나타내고, 각각 데이터(A,B,C)가 저장된다.
이 프로그램에서는, 먼저, 비교명령(cmp)에 따라서, 레지스터(r1)의 데이터(A)로부터 레지스터(r2)의 데이터(B)가 감산되고, 감산결과가 플래그에 설정된다. 조건이 딸린 분기명령(bge)은, 그 플래그에 의해서, 감산결과가 정(正) 또는 0인 경우, 즉, 레지스터(r1)의 데이터(A)가 레지스터(r2)의 데이터(B)와 비교해서 같거나 또는 큰 경우에, 라벨(L1)로 분기한다. 그 이외의 경우에는 분기하지 않고, 후속명령을 실행한다. 라벨(L1)로 분기하면, 이동명령(mov)에 따라서, 레지스터(r3)에 레지스터(r1)의 데이터(A)가 데이터(C)로서 저장된다. 분기하기 않는 경우는, 이동명령(mov)에 따라서 레지스터(r3)에 레지스터(r2)의 데이터(B)가 데이터(C)로서 저장되고, 그 후 무조건 분기명령(ba)에 따라서, 무조건적으로 라벨(L2)로 분기한다. 이렇게 해서, (처리1)이 실현된다.
이러한 신호처리장치에서는, 조건이 딸린 분기명령을 사용해서 처리를 바꾸는 경우, 조건이 딸린 분기명령의 실행에 필요한 시간과, 분기가 발생한 경우에 분기발생지의 명령을 메모리로부터 읽는 시간 등이 필요하고, 신호처리장치의 처리능력을 저하시키는 문제점이 있었다.
더욱이, 분기명령이나, 2개의 상이한 처리의 각각에 대한 명령 등, 대부분의 명령을 필요로 하고, 프로그램의 크기가 커지는 문제점이 있었다.
게다가, 분기의 조건에 따라서 처리가 완료되는 시간이 달라지고, 처리의 결과를 다른 장치가 이용하는 경우, 다른 장치 동작의 타이밍을 조정하는 등 제어가 복잡해지는 문제점이 있었다.
본 발명의 목적은, 분기명령을 사용하지 않고, 플래그에 따라서, 2개의 상이한 연산을 수행하고, 높은 처리능력을 실현할 수 있는 신호처리장치를 제공하는 것이다.
상기한 문제점을 해결하기 위해서, 본 발명의 제1신호처리장치는, 명령을 해독하고, 제1제어신호와 제2제어신호를 출력하는 명령해독수단과, 플래그신호에 따라서, 상기한 제1제어신호와 상기한 제2제어신호중의 하나를 선택해서 출력하는 제어신호선택수단과, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 복수의 입력데이터중의 어느 하나를 선택해서 출력하는 데이터선택수단과, 상기한 데이터선택수단이 출력하는 데이터를 입력의 한가지로서 연산을 수행하는 연산수단을 갖추고 있다.
또한, 본 발명의 제2의 신호처리장치는, 명령을 해독하고, 제1제어신호와 제2제어신호를 출력하는 명령해독수단과, 플래그신호에 따라서, 상기한 제1제어신호와 상기한 제2제어신호중 하나를 선택해서 출력하는 제어신호선택수단과, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 복수의 입력데이터중의 어느 하나를 선택해서 출력하는 복수의 데이터선택수단과, 상기한 복수의 데이터선택수단이 출력하는 데이터를 입력으로 해서 연산을 수행하는 연산수단을 갖추고 있다.
더욱이, 본 발명의 제3신호처리장치는, 명령을 해독하고, 제1제어신호와 제2제어신호를 출력하는 명령해독수단과, 상기한 명령해독수단에 접속되고, 플래그신호에 따라서, 상기한 제1제어신호와 상기한 제2제어신호중 하나를 선택해서 출력하는 제어신호선택수단과, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 복수의 연산입력데이터에 대해서 연산을 수행하는 연산수단을 갖추고 있다.
게다가 또한, 본 발명의 제4신호처리장치는, 명령을 해독하고, 제1제어신호와 제2제어신호를 출력하는 명령해독수단과, 상기한 명령해독수단에 접속되고, 플래그신호에 따라서, 상기한 제1제어신호와 상기한 제2제어신호중 하나를 선택해서 출력하는 제어신호선택수단과, 복수의 데이터를 보유하는 제1데이터보유수단과, 상기 제1데이터보유수단에 접속되고, 상기 제1데이터보유수단에 저장된 데이터를 이동해서 출력하는 적어도 하나의 이동장치와, 상기한 이동장치의 출력과 정수(0)를 입력으로 하고, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 상기한 입력데이터를 선택해서 출력하는 적어도 하나의 데이터선택수단과, 상기한 적어도 하나의 데이터선택수단이 출력하는 데이터를 입력으로 하고 연산을 수행하는 연산수단을 갖추고 있다.
본 발명은 상기한 구성에 의해서, 하나의 명령으로 두개의 조건 각각에 대한 연산을 지정할 수 있고, 플래그값에 따라서 두개의 제어신호중 하나가 선택되고, 상이한 처리를 수행할 수 있게 된다.
이상과 같이, 본 발명은, 조건에 의해서 상이한 처리를, 조건이 딸린 분기명령을 사용하지 않고 수행할 수 있기 때문에, 처리에 필요한 사이클수를 적게 할 수 있고, 극히 유용하다.
또한, 처리를 지시하는 명령의 수를 적게 할 수 있고, 명령을 저장하는 프로그램 메모리의 면적을 작게 할 수 있다.
더욱이, 각각의 조건에 대응하는 두개의 제어신호를 플래그로 선택할 수 있고, 처리를 전환하는 회로규모를 작게 하고, 동작속도를 빠르게 하고, 또한, 다양한 처리에 유연하게 대응할 수 있다.
게다가, 조건에 따라서 연산결과가 얻어지는 타이밍이 달라지지 않기 때문에, 그 결과를 사용하는 장치의 제어를 용이하게 할 수 있다.
도 1은 본 발명의 제1실시예에 있어서의 신호처리장치의 블럭도.
도 2는 본 발명의 제1실시예에 있어서, 조건에 따라서 연산의 종류를 바꾸는 신호처리장치의 블럭도.
도 3은 본 발명의 제2실시예에 있어서의 신호처리장치의 블럭도.
도 4는 본 발명의 제2실시예에 있어서의 명령의 포맷을 나타내는 도면.
도 5는 본 발명의 제3실시예에 있어서, 2개의 신호처리장치를 접속한 구성을 나타내는 도면.
(제1실시예)
도 1은 본 발명의 제1실시예에 있어서의 신호처리장치의 블럭도이다.
도 1에 있어서, 명령해독기(3)는, 명령(20)을 해독하고, 제1제어신호(22)와 제2제어신호(23)를 출력하는 명령해독수단으로서 기능한다. 제어선택회로(6)는, 명령해독수단으로서의 명령해독기(3)에 접속되고, 플래그신호에 따라서, 제1제어신호(22)와 제2제어신호(23)중 하나를 선택해서 출력하는 제어신호선택수단으로서 기능한다. 선택회로(4,5)는, 각각 제어선택회로(6)가 출력하는 제어신호(28)에 따라서, 복수의 입력데이터중의 어느 하나를 선택해서 출력하는 데이터선택수단으로서 기능한다. 연산기(1)는, 선택회로(4,5)에 접속되고, 선택회로(4,5)가 출력하는 데이터에 대해서 연산을 수행하는 연산수단으로서 기능한다. 플래그유지회로(7)는 연산기(1)가 출력하는 연산결과플래그(32)를 저장하고, 플래그신호로서 제어선택회로(6)로 출력하는 플래그보유수단으로서 기능한다. 반전(反轉)회로(8,9)는 입력데이터를 반전해서 출력하는 반전수단으로서 기능한다.
연산기(1)는, 입력(11,12)에 공급되는 두개의 데이터에 대해서 가산이나 논리연산 등을 수행하고, 연산결과의 데이터(31)와 플래그(32)를 출력한다. 플래그(32)는 연산결과가 정수(正數)인가, 마이너스인가, 과잉된 수인가, 0인가 등의 상태를 나타낸다. 여기서는, 간단하기 때문에, 플래그(32)는 1비트로 하고, 연산결과가 마이너스의 경우, 플래그(32)는 0이 되고, 정수 또는 0인 경우, 플래그(32)는 1이 되도록 한다.
레지스터 파일(2)은, 연산기(1)가 연산에 사용하는 데이터와 연산결과의 데이터를 보유하고, 프로그램 메모리(21)는 명령을 저장한다.
제어선택회로(6)는, 명령해독기(3)가 출력하는 제어신호(22,23)를 입력으로 하고, 플래그보유회로(7)에 저장되어 있는 플래그(F)의 값이 0인 경우에 제어신호(22)를 선택하고, 플래그(F)의 값이 1인 경우에 제어신호(23)를 선택하고, 각각 제어신호(28)로 해서 출력한다. 제어신호(28)는 5비트이고, 가장 높은 위치인 2비트는 선택회로(4)의 제어신호(13)로서 공급되고, 다음의 2비트는 선택회로(5)의 제어신호(14)로서 공급되고, 가장 낮은 비트는 연산기(1)의 수송입력(29)으로서 주어진다.
선택회로(4)는, 2비트의 제어신호(13)가 00인 경우는 레지스터 파일(2)의 출력(24)을 선택해서 출력하고, 01인 경우는 반전회로(8)의 출력(25)을 선택해서 출력하고, 10인 경우는 정수(定數) 0을 선택해서 출력한다.
선택회로(5)는, 2비트의 제어신호(14)가 00인 경우는 레지스터 파일(2)의 출력(26)을 선택해서 출력하고, 01인 경우는 반전회로(9)의 출력(27)을 선택해서 출력하고, 10인 경우는 정수(0)를 선택해서 출력하고, 11인 경우는 명령데이터(3)의 정수출력(33)을 선택해서 출력한다.
명령(20)은, 연산의 종류를 나타내는 필드(op), 연산의 제어정보를 나타내는 필드(cnt0,cnt1), 연산에 사용하는 데이터를 저장하는 레지스터의 번호를 나타내는 필드(rs1,rs2), 연산결과를 저장하는 레지스터의 번호를 나타내는 필드(rd) 등으로 구성된다. 필드(cnt0)는, 플래그보유회로(7)가 보유하는 플래그신호가 0인 경우의 연산을 지시하는 필드이고, 필드(cnt1)는, 플래그신호가 1인 경우의 연산을 지시하는 필드이다. 필드(cnt0,cnt1)는 각각 5비트로 되고, 가장 높은 위치 2비트는 선택회로(4)의 입력선택을 지정하는 데이터이고, 다음의 2비트는 선택회로(5)의 입력선택을 지정하는 데이터이고, 나머지 1비트는 연산기(1)의 수송입력(29)으로서 공급되는 데이터이다. 또한, 연산으로 정수를 사용하는 경우, 정수는 인접한 필드(imm)에 설정된다.
이상과 같이 구성된 신호처리장치에 대해서, 아래에 그 동작을 설명한다. 예로서 (처리1)을 실현하는 경우를 설명한다.
(처리1)은 다음과 같은 명령의 조합(프로그램)으로 실현할 수 있다.
cmp r1, r2
F?add r3, r1, 0 : r3, 0, r2
제1명령(cmp)에서는, 레지스터(r1)에 저장되어 있는 데이터(A)로부터 레지스터(r2)에 저장되어 있는 데이터(B)를 감산하고, 플래그(F)를 출력한다. 연산결과가 마이너스인 경우에는 플래그(F)는 0이고, 연산결과가 정수 또는 0인 경우에는 플래그(F)는 1이다.
제2명령은 조건이 딸린 연산명령이고, 플래그(F)의 값이 1인 경우는 add r3,r1,0을 실행하고, 플래그(F)의 값이 0인 경우는 add r3,0,r2를 실행하는 것을 나타낸다. add r3,r1,0은, 레지스터(r1)의 데이터와 0을 가산해서, 레지스터(r)로 저장하는 것, 즉, 데이터(A)를 데이터(C)로서 저장하는 것을 의미한다. 마찬가지로, add r3,0,r2는, 데이터(B)를 데이터(C)로서 저장하는 것을 의미한다. 제1명령의 결과, A≥B이면 플래그(F)는 1이 되고, A<B이면 플래그(F)는 0이 되므로, 제2명령의 실행에 의해서, (처리1)이 실현되는 것이 된다.
여기서, (처리1)의 동작을 도 1을 사용해서 설명한다.
먼저, 프로그램 메모리(21)로부터 제1명령(cmp)이 읽혀지고, 명령해독기(3)로 공급된다. 명령(cmp)은, 플래그(F)의 값에 관계없이, 두개의 데이터에 대해서 감산을 수행한다. 도 1에 나타내는 신호처리장치에서는, 감산은, 한쪽의 입력을 비트 반전하고, 수송입력(29)으로서 1을 공급하고, 연산기(1)로 가산을 수행하는 것으로 실현된다. 따라서, 명령(cmp)의 op필드에는 가산을 나타내는 값이 설정된다. 필드(cnt0) 및 필드(cnt1)에는, 모두, 값 00011이 설정된다. 필드(rs1)에는 1이, 필드(rs2)에는 2가 설정되어 있다.
명령해독기(3)는, 명령(cmp)을 해독해서, 레지스터 파일(2)로부터 레지스터(r1) 및 레지스터(r2)의 데이터 읽기를 지시한다. 또한, 필드(op)를 해독해서, 연산기(1)에 대해서 가산을 지시하고, 필드(cnt0) 및 필드(cnt1)의 값을 각각, 제어신호(22,23)로부터 제어선택회로(6)로 공급한다. 제어선택회로(6)는, 플래그보유회로(7)에 저장되어 있는 플래그(F)의 값이 0인 경우는 제어신호(22)를 선택해서 출력하고, 플래그(F)의 값이 1인 경우는 제어신호(23)를 선택해서 출력하지만, 필드(cnt0) 및 필드(cnt1)의 값은 같으므로, 플래그보유회로(7)에 저장되어 있는 값에 관계없이 같은 값(00011)이 제어신호(28)로서 출력된다. 선택회로(4)는, 제어신호(13)가 00이므로, 레지스터 파일(2)의 출력(24), 즉 레지스터(r1)의 데이터를 선택해서 연산기(1)에 입력(11)으로서 공급한다. 선택회로(5)는, 제어신호(14)가 01이므로, 반전회로(9)의 출력(27)을 선택해서 연산기(1)에 입력으로서 공급한다. 반전회로(9)의 출력(27)은, 레지스터 파일(2)의 출력(26), 즉 레지스터(r2)의 데이터의 반전데이터이다. 연산기(1)의 수송입력(29)으로서는 1이 공급된다. 연산기(1)는 명령해독기(3)로부터의 연산제어신호(30)에 따라서, 입력(11), 입력(12), 및 수송입력(29)에 대해서 가산, 즉 레지스터(r1)와 레지스터(r2)의 데이터에 대해서 감산을 수행해서, 연산결과의 데이터(31) 및 플래그(32)를 출력한다. 플래그(32)는, 명령해독기로부터의 제어에 따라서, 플래그보유회로(7)에 저장된다.
다음으로, 제2명령이 프로그램 메모리(21)로부터 읽어져서 명령해독기(3)로 공급된다. 이 제2명령의 필드(op)에는 가산을 나타내는 값이 설정되어 있다. 필드(cnt0)에는 10000이 설정되고, 필드(cnt1)에는 00100이 설정되어 있다. 필드(rs1)에는 1이 설정되고, 필드(rs2)에는 2가 설정되고, 필드(rd)에는 3이 설정되어 있다. 명령해독기(3)는, 필드(rs1) 및 필드(rs2)를 사용해서, 레지스터 파일(2)로부터 레지스터(r1) 및 레지스터(r2)의 데이터를 읽고, 각각 출력(24,26)으로서 출력한다. 또한, 명령해독기(3)는, 필드(op)를 해독해서, 연산기(1)에 대해서 가산을 지시하고, 필드(cnt0) 및 필드(cnt1)의 값을 각각, 제어신호(22,23)로서 출력하고, 제어선택회로(6)에 공급한다.
플래그보유회로(7)에 보유되어 있는 플래그(F)의 값이 1인 경우, 제어선택회로(6)는, 제어신호(23)의 값(00100)을 선택해서 제어신호(28)로서 출력한다. 선택회로(4)는, 제어신호(13)가 00이므로, 레지스터 파일(2)의 출력(24), 즉 레지스터(r1)의 데이터를 선택해서, 연산기(1)의 입력(11)으로서 출력한다. 선택회로(5)는, 제어신호(14)가 10이므로, 정수(0)를 선택해서, 연산기(1)의 입력(12)으로서 출력한다. 연산기(1)의 수송입력(29)으로서는 0이 공급된다. 연산기(1)는, 명령해독기(3)의 지시에 따르고, 입력(11,12) 및 수송입력(29)에 대해서 가산을 수행하고, 연산결과(31)와 플래그(32)를 출력한다. 즉, 레지스터(r1)의 데이터(A)가 연산결과(31)로서 출력된다.
플래그보유회로(7)에 보유되어 있는 플래그(F)의 값이 0인 경우, 제어선택회로(6)는 제어신호(22)의 값(10000)을 선택해서 제어신호(28)로서 출력한다. 선택회로(4)는, 제어신호(13)가 10이므로, 정수(0)를 선택해서, 연산기(1)의 입력(11)으로서 출력한다. 선택회로(5)는, 제어신호(14)가 00이므로, 레지스터 파일(2)의 출력(26), 즉 레지스터(r2)의 해독기를 선택해서, 연산기(1)의 입력(12)으로서 출력한다. 연산기(1)의 수송입력(29)으로서는 0이 공급된다. 연산기(1)는, 명령해독기(3)의 지시를 따르고, 입력(11,12) 및 수송입력(29)에 대해서 가산을 수행하고, 연산결과(31)와 플래그(32)를 출력한다. 즉, 레지스터(r2)의 데이터(B)가 연산결과(31)로서 출력된다.
명령데이터(3)는, 제2명령의 필드(rd)의 값에 따라, 연산결과(31)의 데이터를 레지스터 파일(2)의 레지스터(r3)에 데이터(C)로서 저장한다. 따라서, 플래그(F)의 값이 1인 경우, 즉 A≥B의 경우는 데이터(C)로서 데이터(A)가, 플래그(F)의 값이 0인 경우, 즉 A<B의 경우는 데이터(C)로서 데이터(B)가 저장되게 되고, (처리1)이 실현된다.
다음으로, 아래에 나타내는 처리를 실행하는 경우에 대해서 설명한다.
(처리2)
if (B≥5) then C=A-B;
else C=A+B;
(처리2)는, 데이터(B)가 5이상이면, 데이터(C)로서 데이터(A-B)를 대입하고, 그렇지 않으면, 데이터(C)로서 데이터(A+B)를 대입하는 처리이다. 이 처리는 다음에 나타내는 바와 같은 프로그램으로 실현할 수 있다.
cmp r2, 5
F?add r3, r1, -r2 : r3, r1, r2
여기에서, 부호(r1,r2,r3)는 각각, 데이터(A,B,C)가 저장되는 레지스터를 나타낸다.
제1명령(cmp)으로는, 레지스터(r2)에 저장되어 있는 데이터(B)로부터 정수(5)를 감산하고, 플래그(F)를 출력하고, 플래그보유회로(7)에 저장한다. 제2명령은, 플래그(F)의 값이 1인 경우, 즉 데이터(B)가 5이상의 수인 경우는, 레지스터(r1)의 데이터(A)로부터 레지스터(r2)의 데이터(B)를 감산하고, F가 0인 경우, 즉 데이터(B)가 5미만의 수인 경우는, 레지스터(r1)의 데이터(A)에 레지스터(r2)의 데이터(B)를 가산하고, 각각 레지스터(r3)에 연산결과의 데이터를 데이터(C)로서 저장한다.
(처리2)의 동작을 도 1을 사용해서 설명한다.
프로그램 메모리(21)로부터 제1명령(cmp)이 읽혀지고, 명령해독기(3)로 공급된다. 명령(cmp)은, 플래그(F)의 값에 관계없이, 레지스터(r2)의 값에서 정수(5)를 감산한다. 정수(5)를 감산하는 것은, 정수(5)의 2의 보수를 가산하는 것과 같다. 따라서, 제1명령(cmp)에서는, 명령의 인접한 필드(imm)에는 정수(5)의 2의 보수가 설정되고, 필드(op)에는 가산을 나타내는 값이 설정된다. 필드(cnt0) 및 필드(cnt1)에는, 모두, 값(00110)이 설정된다. 필드(rs1)에는 2가 설정되어 있다.
명령해독기는, 명령(cmp)을 해독하고, 레지스터 파일(2)로부터 레지스터(r2)의 데이터의 읽기를 지시하고, 인접한 필드(imm)에 설정되어 있는 정수(5)의 2의 보수를 정수출력(33)으로서 출력한다. 또한, 필드(op)를 해독해서, 연산기(1)에 대해서 가산을 지시하고, 필드(cnt0) 및 필드(cnt1)의 값을 각각, 제어신호(22,23)로서 출력하고, 제어선택회로(6)에 공급한다. 필드(cnt0) 및 필드(cnt1)의 값은 같으므로, 플래그보유회로(7)에 저장되어있는 값에 관계없이 값(00110)이 제어신호(28)로서 출력된다. 선택회로(4)는, 제어신호(13)가 00이므로, 레지스터 파일(2)의 출력(24), 즉, 레지스터(r2)의 데이터를 선택해서 연산기(1)에 입력(11)으로서 공급한다. 선택회로(5)는, 제어신호(14)가 11이므로, 명령해독기(3)의 정수출력(33)을 선택해서 연산기(1)에 입력(12)으로서 공급한다. 연산기(1)의 수송입력(29)으로서는 0이 공급된다. 연산기(1)는, 명령해독기(3)로부터의 연산제어신호(30)에 따라서, 입력(11), 입력(12), 및 수송입력(29)에 대해서 가산, 즉 레지스터(r2)로부터 정수(5)의 감산, 즉 (B-5)를 수행하고, 연산결과의 데이터(31) 및 플래그(32)를 출력한다. 플래그(32)는 명령해독기(3)로부터의 제어에 따라서, 플래그보유회로(7)가 저장된다.
다음으로, 제2명령이 프로그램 메모리(21)로부터 읽혀져서 명령해독기(3)로 공급된다. 이 명령의 필드(op)에는 가산을 나타내는 값이 설정되어 있다. 필드(cnt0)에는 값(00000)이 설정되고, 필드(cnt1)에는 값(00011)이 설정되어 있다. 필드(rs1)에는 1이 설정되고, 필드(rs2)에는 2가 설정되고, 필드(rd)에는 3이 설정되어 있다. 명령해독기(3)는, 필드(rs1) 및 필드(rs2)를 사용해서, 레지스터 파일(2)로부터 레지스터(1) 및 레지스터(rs)의 데이터를 읽어내고, 각각, 출력(24,26)으로서 출력한다. 또한, 명령해독기(3)는, 필드(po)를 해독해서, 연산기(1)에 대해서 가산을 지시하고, 필드(cnt0) 및 필드(cnt1)의 값을 각각, 제어신호(22,23)로서 출력하고, 제어선택회로(6)에 보낸다.
플래그보유회로(7)에 보유되어 있는 플래그(F)의 값이 0인 경우, 제어선택회로(6)는, 제어신호(22)를 선택해서 제어신호(28)로서 출력한다. 선택회로(4)는, 제어신호(13)가 00이므로, 레지스터 파일(2)의 출력(24) 및, 즉 레지스터(r1)의 데이터를 선택해서, 연산기(1)의 입력(11)으로서 출력한다. 선택회로(5)는, 제어신호(14)가 00이므로, 레지스터 파일(2)의 출력(26), 즉 레지스터(r2)의 데이터를 선택해서, 연산기(1)의 입력(12)으로서 출력한다. 연산기(1)의 수송입력(29)으로서는, 제어선택회로(6)의 제어신호(28)의 가장 낮은 위치의 비트, 이 경우 0이 공급된다. 연산기(1)는, 명령해독기(3)의 지시를 따르고, 입력(11,12) 및 수송입력(29)에 대해서 가산을 수행하고, 연산결과(31)와 플래그(32)를 출력한다. 이것에 의해, 레지스터(r1)의 데이터(A)와 레지스터(r2)의 데이터(B)의 가산결과가 연산결과(31)로서 출력된다.
플래그보유회로(7)에 보유되어 있는 플래그(F)의 값이 1인 경우, 제어선택회로(6)는, 제어신호(23)를 선택해서 제어신호(28)로서 출력한다. 선택회로(4)는, 제어신호(13)가 00이므로, 레지스터 파일(2)의 출력(24)을 선택해서, 연산기(1)의 입력(11)으로서 출력한다. 선택회로(5)는, 제어신호(14)가 01이므로, 반전회로(9)의 출력(27)의 데이터를 선택해서, 연산기(1)의 입력(12)으로서 출력한다. 반전회로(9)의 출력(27)은, 레지스터 파일(2)의 출력(26)의 반전데이터, 즉 레지스터(r2)의 반전데이터이다. 연산기(1)의 수송입력(29)으로서는 1이 공급된다. 연산기(1)는, 명령해독기(3)의 지시를 따르고, 입력(11,12) 및 수송입력(29)에 대해서 가산을 수행하고, 연산결과(31)와 플래그(32)를 출력한다. 이것에 의해, A-B가 연산결과(31)로서 출력된다.
명령해독기(3)는, 명령의 rd필드의 값에 따르고, 연산결과(31)의 데이터를 레지스터 파일의 레지스터(r3)에 데이터(C)로서 저장한다. 따라서, 플래그(F)의 값이 0인 경우는, 데이터(C)로서 데이터(A+B)가, 플래그(F)의 값이 1인 경우는 데이터(C)로서 데이터(A-B)가 저장되게 되고, (처리2)가 실현된다.
이상과 같이, 명령에 플래그가 0인 경우의 연산 정보와 플래그가 1인 경우의 연산 정보를 가지게 하고, 플래그보유회로(7)에 저장되어 있는 값에 따라서, 두개의 제어신호(22,23)중 하나를 선택하는 제어선택회로(6)를 갖추는 것에 의해, 조건이 딸린 연산을 바꿔서 실행할 수 있다.
또한, 플래그의 값에 따른 제어정보의 필드가 두개로 나누어져 있기 때문에, 명령해독기(3)는 용이하게 제어신호(22,23)를 생성할 수 있고, 제어신호(22,23)를 생성하기 위한 회로의 규모를 작게 하고, 생성에 필요한 시간을 단축시킬 수 있다.
또한, 플래그에 따라서 처리를 바꾸기 위한 제어선택회로(6)도 단순히 두개의 입력에서 하나를 플래그에 따라서 선택할 뿐이므로, 극히 간단한 회로로 고속의 처리를 실현할 수 있다.
또한, 이 예에서는, 조건이 딸린 연산명령으로 가산을 수행하는 경우를 나타냈지만, 가산 이외의 연산, 예를 들면, 논리적이나 배타적 논리이화 등에 본 발명의 신호처리장치를 사용해도 좋다.
또한, 본 실시예에서는 연산기가 두개인 입력데이터에 대해서 연산을 수행하는 경우에 대해서 서술했지만, 본 발명은 연산기가 세개이상인 입력데이터에 대해서 연산을 수행하는 경우에 적용할 수 있다.
또한, 연산기의 복수의 입력중 일부만으로, 제어선택회로의 출력에 따라서 입력을 선택해서 출력하는 선택회로를 접속하고, 다른 입력에는 플래그신호와는 관계없이 결정된 데이터를 공급하도록 해도 좋다.
또한, 본 실시예에서는, 감산을 수행하는 경우에, 반전한 데이터를 입력하고, 수송입력으로서 1을 공급해서 가산하고 있지만, 연산기에 감산의 기능을 설치하고, 연산을 지정하는 것으로, 감산을 실현할 수도 있다. 이 경우, 플래그가 0인 경우와 플래그가 1인 경우의 제어정보를 나타내는 필드에 가산이나 감산을 지시하는 정보를 넣고, 플래그의 값에 따라서 제어선택회로에 의해서 선택한다. 예를 들면, 플래그가 1인 경우에 가산을 지정하고, 플래그가 0인 경우에 감산을 지정하게 해도 좋다. 도 2의 조건에 따라서 연산기의 연산을 바꾸는 신호처리장치의 블럭도를 나타낸다. 이 도면에서는, 필드(cnt0,cnt1)에 연산의 종류를 지정하는 정보가 포함되어 있고, 이 정보를 근거로 제어신호(22,23)가 명령해독기(3)에 의해 생성된다. 제어신호(22,23)중 하나가, 플래그보유회로(7)에 보유되어 있는 플래그에 따라서, 제어선택회로(6)에 의해 선택되고, 연산의 종류를 나타내는 신호가 연산제어신호(30)로 보내지고, 연산기(1)의 연산을 제어한다. 연산제어신호(30)에 의해 감산을 지정할 수 있으므로, 선택회로(4,5)로부터 데이터를 반전한 값을 연산기(1)로 공급하지 않아도, 도 1에 나타내는 신호처리장치와 같은 조건이 딸린 연산을 실행할 수 있다.
또한, 명령이 포맷에 있어서, 플래그가 0인 경우와 플래그가 1인 경우의 제어정보의 필드를 명확하게 분리시키지 않고, 플래그가 0인 경우와 플래그가 1인 경우의 제어정보를 암호화시켜서 하나의 필드에 설정해도 좋다. 예를 들면, 이 필드가 1인 경우는, 플래그가 0일 때, 가산기는 제1입력을 출력하고, 플래그가 1일 때, 가산기는 제2입력을 출력하게 하고, 이 필드가 2인 경우는, 플래그가 0일 때, 가산기는 제1입력과 제2입력의 가산을 수행하고, 플래그가 1일 때, 가산기는 제1입력으로부터 제2입력을 감산하게 해도 좋다.
또한, 플래그보유회로에는, 연산기의 플래그출력을 저장하는 것으로 했지만, 레지스터 파일에 저장되어 있는 데이터 혹은, 신호처리장치의 외부로부터 입력되는 데이터를 저장하게 해도 좋다.
(실시예2)
도 3은 본 발명이 제2실시예를 나타내는 신호처리장치의 블럭도이다.
도 3에 있어서, 도 1과 동일한 기능을 갖는 것에는 동일한 부호를 붙여서 상세한 설명을 생략한다. 선택회로(104,105,106)는, 제어선택회로(6)가 출력하는 제어신호(28)에 따라서, 복수의 입력데이터중 어느 하나를 선택해서 출력하는 데이터선택수단으로서 기능한다. 가산기(101)는, 선택회로(104,105,106)에 접속되고, 선택회로(104,105,106)가 출력하는 데이터에 대해서 연산을 수행하는 연산수단으로서 기능한다. 데이터보유회로(102)는, 복수의 데이터를 보유하는 제1데이터보유수단으로서 기능한다. 데이터보유회로(103)는, 가산기(101)가 출력하는 연산결과(31)를 저장해서 출력하는 제2데이터보유수단으로서 기능한다. 반전회로(115,116,117)는, 입력데이터를 반전해서 출력하는 반전수단으로서 기능한다.
가산기(101)는, 세개의 입력(111,112,113)데이터와 수송입력(118)의 값을 감산하고, 연산결과의 데이터(31)와 플래그(32)를 출력한다. 선택회로(137)는, 가산기(101)의 연산결과(31)가 데이터보유회로(1022)의 출력(136)을 선택해서 출력(135)으로서 출력한다.
이동장치(121,122,123)는, 입력된 데이터에 대해서, 명령해독기(3)의 지시에 따라서, 오른쪽(하위비트방향) 혹은 왼쪽(상위비트방향)에 적당한 비트수 이동한다. 선택회로(107)는, 명령해독기(3)의 제어신호(130)에 따라서, 이동장치(121)의 출력이나 반전회로(115)의 출력중 어느 하나를 선택하고 출력한다. 선택회로(108)는, 명령해독기(3)의 제어신호(131)를 따라서, 이동장치(122)의 출력이나 반전회로(116)의 출력이나 명령데이터(3)의 정수출력(144)중의 어느 하나를 선택해서 출력한다. 선택회로(110)는, 명령해독기(3)의 제어신호(132)에 따라서, 데이터입력(128)을 래치(138)로 일단 저장한 값이나 데이터보유회로(103)의 출력을 선택해서 이동장치(123)에 출력한다. 선택회로(109)는, 제어신호(144)가 0인 경우 이동장치(123)의 출력을 선택하고, 제어신호(144)가 1인 경우 반전회로(117)의 출력을 선택해서 출력한다. 선택회로(104,105,106)는 각각, 대응하는 제어신호(141,142,143)가 1인 경우, 선택회로(107,108,109)의 출력을 선택하고, 대응하는 제어신호(141,142, 143)가 0인 경우, 정수(0)를 선택해서, 가산기(101)의 입력(111,112,113)으로서 출력한다.
도 3에 나타내는 신호처리장치에서는, 이동장치(121,122)와 가산기(101)와의 누적용에 사용하는 데이터보유회로(103)에 의해서 적화연산을 수행할 수 있다. 예를 들면, 세개의 데이터(A,B,C)에 대해서, A×(1/4)+b×(1/2)+C×(1/4)를 수행하는 경우, 먼저 데이터보유회로(102)로부터 두개의 데이터(A,B)를 선택해서, 각각 이동장치(121,122)에 공급한다. 이동장치(121)는, 데이터(A)를 오른쪽(하위비트방향)으로 2비트 이동하고, 선택회로(107,104)를 개재해서, 가산기(101)에 입력(111)으로서 공급한다. 이동장치(122)는, 데이터(B)를 오른쪽으로 1비트 이동하고, 선택회로(108,105)를 개재해서, 가산기(101)에 입력(112)으로서 공급한다. 가산기(101)의 입력(113)으로서는 선택회로(106)로부터 0이 공급된다. 또한, 수송입력(118)으로서도 0이 공급된다. 가산기(101)는, 입력된 데이터에 대해서 가산을 수행하고, 연산결과의 데이터(31)를 데이터보유회로(103)에 저장한다. 이것에 의해, 데이터보유회로(103)에는 A×(1/4)+b×(1/2)가 얻어지게 된다.
다음으로, 데이터보유회로(102)는, 데이터(C)를 선택해서 이동장치(121)에 공급한다. 이동장치(121)는, 데이터(C)를 오른쪽으로 2비트 이동해서, 선택회로(107,104)를 개재해서, 가산기(101)로 입력(111)으로서 공급한다. 데이터보유회로(103)에 저장되어 있는 데이터는, 선택회로(110)에 의해서 선택되어 이동장치(123)에 공급되고, 이동되지 않고 그대로 선택회로(109,106)를 개재해서 가산기(101)에 입력(113)으로서 공급된다. 가산기(101)의 입력(112)으로서는 선택회로(105)로부터 0이 공급된다. 가산기(101)는, 공급된 데이터에 대해서 가산을 수행하고, 연산결과(31)를 출력한다. 이 연산결과는 A×(1/4)+B×(1/2)+C×(1/4)가 된다.
이 신호처리장치를 사용해서, 도 1의 신호처리장치와 같이 조건에 따라서 상이한 처리를 수행하는 경우의 동작에 대해서 설명한다.
도 4에, 도 3에 나타내는 신호처리장치의 명령의 포맷을 나타낸다. 명령은 몇개의 필드로 구성된다. 필드형은 명령의 종류를 나타내는 필드이고, 그 값이 0 및 1일 때는 무조건 연산명령, 2 및 3일 때는 조건이 딸린 연산명령을 나타낸다. 또한, 필드형의 값이 1 및 3의 경우는, 연산에 정수를 사용하는 명령인 것을 나타낸다. 연산에서 사용하는 정수는 인접한 필드(imm)에서 주어진다.
필드(add,add0,add1)는, 가산기 세개의 입력을 제어하는 필드로, 입력에 데이터를 공급하거나, 혹은 0을 주는 것인가를 나타낸다. 이들 필드는 각각 3비트로 이루어지고, 각각 1비트가 가산기의 각각의 입력에 대응한다. 이 비트가 0인 경우는 정수(0)가 입력으로 공급되고, 1인 경우는 데이터가 공급된다. 필드(add0)는, 플래그가 0일 때 사용되는 정보이고, 필드(add1)는 플래그가 1일 때 사용되는 정보이고, 필드(add)는 플래그의 값과는 관계없이 사용되는 정보이다. 필드(pi,qi,ri, ri0,ri1)는 각각 1비트이고, 가산기 세개의 입력에 공급하는 데이터를 반전시킬지 말지를 표시하는 필드이고, 이 비트가 0이면, 데이터를 반전시키지 않고 그대로 가산기의 입력으로 공급하고, 1이면 데이터를 반전해서 가산기의 입력에 공급한다. 필드(pi)는, 가산기(101)의 입력(111)의 데이터에 대응하고, 필드(qi)는 입력(112)의 데이터에 대응하고, 필드(ri,ri0,ri1)는 입력(113)의 데이터에 대응한다. 필드(ri0)는 플래그가 0일 경우의 제어정보이고, 필드(ri1)는 플래그가 1인 경우의 제어정보이고, 필드(pi,qi,ri)는 플래그의 값과는 관계없이 사용되는 정보이다.
명령데이터(3)는, 필드(pi,qi)의 값을 각각, 제어신호(130,131)로 해서 출력하고, 선택회로(107,108)로 공급된다. 더욱이, 명령이 무조건 연산명령인 경우는, 필드(add)의 값과 필드(ri)의 값과 수송입력의 값을 연결한 5비트의 신호를 제어신호(22)와 제어신호(23)의 양쪽으로 해서 출력한다. 수송입력값은 감산을 수행하는 경우에 1로 하는 값이고, 필드(pi,qi,ri)중의 어느 하나가 1인 경우에 1이 된다. 명령이 조건 딸린 연산명령의 경우는, 필드(add0)의 값과 필드(ri0)의 값과 수송입력값을 연결한 5비트의 신호를 제어신호(23)로서 출력한다. 제어신호(22)로서 출력하는 수송입력값은, 필드(pi,qi,ri)중 하나가 1인 경우에 1이 되고, 제어신호(23)로 해서 출력하는 수송입력값은, 필드(pi,qi,ri1)중 하나가 1인 경우에 1이 된다.
제어선택회로(6)의 5비트의 제어신호(28)는, 가장 높은 위치의 비트에서 1비트씩, 각각, 선택회로(104,105,106,109)에 제어신호(141,142,143,144)로 해서, 가산기(101)에 수송입력(118)으로서, 각각 공급된다.
명령에는, 여기에 나타낸 필드 외에, 이동장치(121,122,123)에서의 이동의 양을 나타내는 필드나, 데이터보유회로(102)로부터 읽는 데이터를 지정하는 필드나, 데이터보유회로(103)에 연산결과(31)를 저장할 것인가 아닌가를 지시하는 필드 등이 있지만, 여기에서는, 설명을 간단하게 하기 위해서 생략한다.
예를 들면, 다음에 나타내는 처리에 대해서 설명한다.
(처리3)
if (A-B≥0) then C=A-B;
else C=-A+B;
(처리3)은, 두개의 데이터의 차이를 가지고, 그 절대치를 구하는 처리이다.
이 처리를 아래에 나타내는 명령을 사용해서 실행한다.
제1명령 : E=r1-r2
제2명령 : E=F?E:(-E)
여기에서, 부호(r1,r2)는 각각, 데이터(A,B)를 보유하는 데이터보유회로(102)중의 레지스터를 나타내고, E는, 데이터보유회로(103)에 수납되는 데이터를 나타낸다.
먼저, 제1명령으로, A-B를 실행한다. 제1명령의 필드(add)는 110이고, 제1명령의 필드(pi,qi,ri)는 각각 0,1,0이고, 제1명령의 수송입력은 1이다. 이 명령은 무조건 연산명령이므로, 필드(add)와 필드(ri)와 수송입력을 연결한 값(11001)이 제어신호(22,23)로서 출력된다. 같은 값이 제어신호(22,23)로서 공급되므로, 제어선택회로(6)의 제어신호(28)는, 플래그보유회로(7)에 저장되어 있는 값에 관계없는 값(11001)이다. 명령해독기(3)의 제어에 의해, 데이터보유회로(102)로부터 레지스터(r1)의 데이터(A)와 레지스터(r2)의 데이터가 읽혀지고, 각각 이동장치(121,122)로 공급된다. 이동장치(121,122)는, 입력된 데이터를 이동시키지 않고, 그대로 출력한다. 선택회로(104)는, 제어회로(141)가 1이므로, 선택회로(107)의 출력을 선택해서 가산기(101)의 입력(111)으로서 출력한다. 선택회로(105)는, 제어신호(142)가 1이므로 선택회로(108)의 출력을 선택해서 가산기(101)의 입력(112)으로서 출력한다. 선택회로(106)는, 제어신호(143)가 0이므로, 정수(0)를 선택해서 가산기(101)의 입력(113)으로서 출력한다. 제어신호(130,131)에는, 명령의 필드(pi,qi)의 값 즉, 0, 1이 공급되고, 선택회로(107)는 이동장치(121)의 출력을 선택해서 출력하고, 선택회로(108)는 반전회로(116)의 출력을 선택해서 출력한다. 이것에 의해, 가산기(101)의 입력(111,112,113)에는 각각, 데이터(A), 데이터(B)의 반전데이터, 정수(0)가 공급된다. 더욱이, 수송입력(118)에는 1이 공급되고, 가산기(101)가 가산을 수행한 결과의 데이터(31) 및 플래그(32)는 A-B의 결과의 데이터 및 플래그가 된다. 연산결과의 데이터(31)는 데이터보유회로(103)에 저장되고, 플래그(32)는 플래그보유회로(7)에 각각 저장된다.
다음으로, 제2명령을 실행한다. 제2명령은 조건이 딸린 연산명령이고, 필드(add) 및 필드(add1)는 모두 001이다. 필드(pi,qi)는 각각, 0, 0이고, 필드(ri0,ri1)는 각각 1, 0이다. 따라서, 명령해독기(3)는, 제어신호(22)로서 값(00111)을 출력하고, 제어신호(23)로서 값(00100)을 출력한다.
플래그보유회로(7)에 저장되어 있는 F의 값이 0인 경우, 제어선택회로(6)는 제어신호(22)를 선택해서 제어신호(28)로서 값(00111)을 출력한다. 제어신호(141,142)는 모두 0이므로, 선택회로(104,105)는 정수(0)를 선택해서 가산기(101)의 입력(111,112)으로서 출력한다. 제어신호(143)는 1이므로, 선택회로(106)는 선택회로(109)의 출력을 선택해서 가산기(101)의 입력(113)으로서 출력한다. 선택회로(110)는 데이터보유회로(103)의 출력, 즉 제1명령의 연산결과(A-B)를 출력한다. 제어신호(144)는 1이므로, 선택회로(109)는 반전회로(117)의 출력을 선택해서 출력하게 된다. 따라서, 가산기(101)에는, 선택회로(106)를 개재해서, 입력(113)으로서 데이터(A-B)의 반전데이터가 공급된다. 수송입력(118)에는, 1이 공급되므로, 가산기(101)는, 0+0-(A-B)의 연산을 수행하고, -A+B를 연산결과(31)로 출력한다.
플래그보유회로(7)에 저장되어 있는 플래그(F)의 값이 1인 경우, 제어선택회로(6)는, 제어신호(23)를 선택해서 제어신호(28)로서 값(00100)을 출력한다. 가산기(101)의 입력(111,112)으로서는, 플래그(F)의 값이 0인 경우와 마찬가지로 정수(0)가 공급된다. 제어신호(143)는 1이므로, 선택회로(106)는, 선택회로(109)의 출력을 선택해서 가산기(101)의 입력(113)으로서 출력한다. 제어신호(144)는 0이므로, 선택회로(109)는, 이동장치(123)의 출력을 선택해서 출력한다. 선택회로(110)는, 명령해독기(3)의 제어에 의해 데이터보유회로(103)의 출력(A-B)의 값을 선택해서 출력한다. 이것에 의해, 가산기(101)로는 입력(111,112,113)으로서, 각각, 정수(0), 정수(0), 및 데이터(A-B)가 입력된다. 수송입력(118)으로서는 0이 주어지므로, 가산기(101)는 연산결과(31)에 A-B를 출력한다.
이렇게 해서, 플래그(F)의 값이 1인 경우, 즉 A-B가 정수(正數) 또는 0인 경우는 A-B를 출력해서 데이터보유회로(103)에 저장하고, 플래그(F)의 값이 0인 경우, 즉 A-B가 마이너스인 경우는 -A+B를 출력해서 데이터보유회로(103)에 저장하고, (처리3)이 실현되게 된다.
다음으로, (처리1)에 있어서, 데이터(B)가 정수인 경우의 동작에 대해서 설명한다.
이 처리는 다음과 같은 명령의 조합으로 실현할 수 있다.
제1명령 : E=r1-B
제2명령 : E=F?B:r1
여기에서, 부호(r1)는, 데이터(A)를 보유하는 데이터보유회로(102)중의 레지스터를 나타내고, E는 데이터보유회로(103)에 저장되는 데이터를 나타낸다. B는 정수이다.
제1명령은, 레지스터(r1)의 데이터(A)로부터 정수(B)를 이어서, 결과의 플래그를 저장한다.
제1명령은 무조건 연산명령이고, 정수(B)를 사용하므로 필드형은 값이 1이고, 정수(B)는 인접한 필드(imm)로부터 공급된다. 이 경우, 인접한 필드(imm)에는 정수(B)의 2의 보수가 설정된다. 필드(add)는 110이고, 필드(pi,qi,ri)는 각각 0, 0, 0이다. 명령해독기(3)는, 제1명령을 해독해서, 제어신호(23) 및 제어신호(23)로서 모두, 11000을 출력한다. 제어선택회로(6)는, 플래그보유회로(7)의 값에 관계없이, 제어신호(28)로서 11000을 출력한다. 제어신호(141)에는 1이 공급되므로, 선택회로(104)는, 선택회로(107)의 출력을 선택해서 출력한다. 제어신호(142)에는 1이 공급되므로, 선택회로(105)는, 선택회로(108)의 출력을 선택해서 출력한다. 제어신호(143)에는 0이 공급되므로, 선택회로(106)는 정수(0)를 선택해서 출력한다. 제어신호(144)에는 0이 공급되므로 선택회로(109)는 이동장치(123)의 출력을 선택해서 출력한다. 명령해독기(3)는, 명령의 인접한 필드(imm)에 설정되어 있는 정수(B)의 2의 보수를 정수출력(114)으로서 출력한다. 명령해독기(3)의 제어에 따라서, 선택회로(107)는 이동장치(121)의 출력을 선택해서 출력하고, 선택회로(108)는 정수출력(114)을 선택해서 출력한다. 따라서, 가산기(101)의 입력(111,112,113)으로서는 각각, 레지스터(r1)의 데이터(A), 정수(B)의 2의 보수, 정수(0)가 공급되고, 수송입력(118)으로서는 0이 공급되므로, 연산결과(31)에는, A-B의 결과의 데이터가 출력되고, 그 플래그가 플래그출력(32)으로서 출력된다. 플래그출력(32)의 값은, 명령해독기(3)의 제어에 따라서, 플래그보유회로(7)에 저장된다.
제2명령은, 플래그(F)의 값에 따라서 연산이 상이한 조건이 딸린 연산명령이고, 정수(B)를 사용하므로, 필드형은 3이다. 플래그(F)의 값이 1인 경우는, 정수(B)를 데이터보유회로(103)에 저장하고, 플래그(F)의 값이 0인 경우는, 레지스터(r1)의 데이터(A)를 데이터보유회로(103)에 저장한다.
제2명령의 필드(add0,add1)는 각각, 100 및 010이고, 제2명령의 필드(pi,qi)는 0, 0이고, 제2명령의 필드(ri0,ri1)는, 0, 0이다. 제2명령의 인접한 필드(imm)에는 정수(B)가 설정되어 있다.
명령해독기(3)의 제어에 의해, 데이터보유회로(102)로부터 데이터(A)가 읽혀지고, 이동장치(121)로 공급된다. 이 경우, 이동량은 0이므로, 이동장치(121)는, 데이터(A)를 그대로 선택회로(107)로 출력한다. 정수출력(114)으로서는, 인접한 필드(imm)에 설정되어 있는 정수(B)가 출력된다. 선택회로(108)는, 정수출력(114)의 값, 즉 정수(B)를 선택해서 출력한다. 명령해독기(3)는, 제2명령을 해독하고, 제어신호(22) 및 제어신호(23)에 각각, 값(10000) 및 값(01000)을 출력한다.
플래그보유회로(7)에 저장되어 있는 플래그(F)의 값이 0인 경우, 제어선택회로(6)는, 제어신호(22)의 값(10000)을 제어신호(28)로서 출력한다. 제어신호(141)에는 1이 공급되므로, 선택회로(104)는 선택회로(107)의 출력을 선택한다. 제어신호(142,143)에는 0이 주어지므로, 선택회로(105,106)는 정수(0)를 선택한다. 선택회로(107)는, 명령해독기(3)의 제어에 의해, 이동장치(121)의 출력을 선택해서 출력한다. 따라서, 가산기(101)의 입력(111,112,113)으로서는 각각, 데이터(A), 정수(0), 및 정수(0)가 공급되고, 수송입력(118)으로서는 0이 주어지므로, 가산기(101)는, A+0+0, 즉 A를 연산결과(31)에 출력한다. 연산결과(31)에 출력된 데이터(A)는, 데이터보유회로(103)에 저장된다.
플래그(F)의 값이 1인 경우, 제어회로(6)는, 제어신호(23)의 값(01000)을, 제어신호(28)로서 출력한다. 제어신호(141,143)는 0이므로, 선택회로(104,106)는 정수(0)를 선택해서 출력한다. 제어신호(142)는 1이므로, 선택회로(105)는 선택회로(108)의 출력, 즉 정수(B)를 선택해서 출력한다. 따라서, 가산기(101)의 입력(111,112,113)으로서는 각각, 정수(0), 정수(B), 및 정수(0)가 공급되고, 수송입력(118)으로서는 0이 주어지므로, 가산기(101)는, 0+B+0, 즉 B를 연산결과(31)로서 출력한다. 연산결과(31)로서 출력된 데이터(B)는, 데이터보유회로(103)에 저장된다.
이것에 의해, (처리1)에서 B가 정수인 경우의 처리가 실행되게 된다.
제어선택회로(6)는, 플래그보유회로(7)에 저장되어 있는 플래그에 의해서, 제어신호(23) 혹은 제어신호(23)중 어느 하나를 선택할 뿐이므로, 회로구성은 간소하고, 지연시간을 짧게 할 수 있다.
또한. 플래그보유회로(7)에는, 복수의 플래그를 보유하고, 그 중 하나를 사용해서, 제어선택회로(6)가 제어신호(22 혹은 23)중 어느 하나를 선택하게 해도 좋다.
본 실시예에서는, 가산기(101)의 플래그출력은 연산결과가 마이너스인가 아닌가를 나타내는 신호로 했지만, 연산결과가 과잉된 수인지 아닌지, 값이 0인지 아닌지, 가장 높은 위치의 비트로부터의 자리올림이 발생했는가 아닌가 등의 상태를 나타내는 하나 혹은 복수의 신호라도 좋다. 더욱이, 제어선택회로(6)는 플래그보유회로(7)에 저장된 복수의 플래그의 조합에 따라서 제어신호(22) 혹은 제어신호(23)중 어느 하나를 선택하게 해도 좋다.
본 실시예에서는, 가산기의 세개의 입력중 하나의 데이터에 대해서 감산을 수행하는 경우에, 그 데이터를 반전해서, 수송입력에 1을 주어서 가산하도록 하고 있지만, 두개의 데이터에 대해서 감산이 가능하도록 수송입력의 비트수를 2비트 이상으로 해도 좋다.
또한, 본 발명은, 가산기가 두개의 입력데이터, 혹은 4개 이상의 입력데이터에 대해서 가산을 수행하는 경우에도 적용할 수 있다.
또한, 본 실시예에 있어서의 이동장치 혹은 선택회로중 몇개를 생략하고, 가산기의 입력의 일부에만, 플래그에 의해서 데이터가 전환되는 기능을 가지게 해도 좋다.
이상과 같이, 명령에 플래그가 0인 경우의 연산 정보와 플래그가 1인 경우의 연산 정보를 갖게 하고, 플래그보유회로(7)에 저장되어 있는 값에 따라서, 두개의 제어신호중 하나를 선택하는 제어선택회로(6)를 갖추는 것에 의해, 조건이 딸린 연산을 바꾸어 실행할 수 있게 된다.
(제3실시예)
도 5는 본 발명의 제3실시예를 나타내는 도면이고, 두개의 신호처리장치를 접속한 구성을 나타내는 도면이다.
도 5에 있어서, 신호(100a 및 100b)는, 각각 도 3에 있어서의 신호처리장치를 나타내는 것이고, 신호처리장치(100a)의 출력(135,32,31)이 각각, 신호처리장치(100b)로 입력(129,136,128)으로서 공급되어 있다.
직렬로 접속한 두개의 신호처리장치(100a,100b)를 사용하는 것에 의해, 전단의 신호처리장치(100a)로 수행된 연산의 결과의 플래그를 사용해서, 다음 단의 신호처리장치(100b)로 조건이 딸린 연산명령을 실행할 수 있다.
예를 들면, 두개의 신호처리장치(100a,100b)를 사용해서 나누기를 수행하는 경우에 대해서 설명한다.
아래에, A÷B를 수행하는 경우의 각 사이클의 처리를 나타낸다.
(신호처리장치(100a)) (신호처리장치(100b))
사이클1 E=A-B
사이클2 E=F?E×2-B:E×2+B E=PF?1:0
사이클3 E=F?E×2-B:E×2+B E=PF?E×2+1:E×2+0
사이클4 E=F?E×2-B:E×2+B E=PF?E×2+1:E×2+0
사이클5 E=PF?E×2+1:E×2+0
여기에서, PF라는 것은, 전단의 신호처리장치(100a)의 연산결과의 플래그를 나타낸다.
이 처리에 있어서, 나누어지는 수(A)는 신호처리장치(100a)의 데이터입력(128)으로서 공급되고, 나누는 수(B)는 신호처리장치(100a)의 데이터입력(129)으로서 공급되고, 데이터보유회로(102)에 보유되게 한다.
신호처리장치(100a)에서는, 사이클(1)에서 데이터(A)가 데이터입력(128)으로서 공급되고, 더욱이 래치(138), 선택회로(110), 이동장치(123), 선택회로(109, 106)를 개재해서 가산기(101)에 입력(113)으로서 공급된다. 데이터(B)는 데이터보유회로(102)로부터 읽혀지고, 이동장치(121)로부터 반전회로(115)로 공급되고, 반전된 후, 선택회로(107,104)를 개재해서 가산기(101)에 입력(111)으로서 공급된다. 입력(112)으로서는 선택회로(105)로부터 정수(0)가 공급되고, 수송입력(118)으로서는 1이 주어진다. 가산기(101)에 의해서 가산이 수행되고, 결과의 데이터(A-B)가 연산결과(31)로 출력되고, 데이터보유회로(103)에 저장된다. 동시에, 연산결과의 플래그(32)가 플래그보유회로(7)에 저장된다.
사이클(2)에서는 플래그보유회로(7)에 저장된 플래그(F)의 값이 1인 경우, 데이터보유회로(103)에 저장되어 있는 데이터(E)를 2배, 즉 왼쪽으로 1비트 이동해서, 데이터(B)를 감산한다. 플래그(F)의 값이 0인 경우는, 데이터(E)의 2배로 데이터(B)를 가산한다. 이 때, 데이터(B)는 데이터보유회로(102)로부터 읽혀지고, 두 개의 이동장치(121,122)로 공급되고, 선택회로(107)는 이동장치(121)의 출력을 선택해서 출력하고, 선택회로(108)는 이동장치(122)의 출력을 반전한 반전회로(116)의 출력을 출력한다. 플래그(F)의 값이 0인 경우는, 선택회로(104)가 데이터(B)를 가산기(101)로 입력(111)으로서 공급하고, 선택회로(105)는 정수(0)를 가산기(101)로 입력(112)으로서 공급하고, 플래그(F)의 값이 1인 경우는, 선택회로(104)는 정수(0)를 가산기(101)로 입력(111)으로서 공급하고, 선택회로(105)는 데이터(B)의 반전을 가산기(101)로 입력(112)으로서 공급한다. 수송입력(118)으로서는, 플래그(F)의 값이 1인 경우는 1이, 플래그(F)의 값이 0인 경우는 0이 공급된다. 입력(113)으로서는 플래그(F)에 관계없이 데이터(E)의 2배가 주어진다.
연산결과의 데이터를 데이터보유회로(103)에, 연산결과의 플래그를 플래그보유회로(7)에 각각 저장한다. 사이클(3) 및 사이클(4)은, 사이클(2)과 같은 연산을 반복한다. 사이클(2,3,4)의 명령은 조건이 딸린 연산명령이고, 명령의 필드(add1)는 101, 필드(add0)는 011, 필드(pi, qi)는 0 및 1, 필드(ri0,ri1)는 모두 0이고, 명령해독기(3)는 제어신호(22,23)에 각각 01101, 10100을 출력한다.
사이클(1,2,3,4)의 각각의 연산으로 얻어진 결과의 플래그는 나누기(A÷B)의 몫의 각 비트이다. 이 각 1비트의 플래그를 사용해서, 다음 단의 신호처리장치(100b)에서 4비트의 몫을 조립한다. 신호처리장치(100a)의 사이클(1)의 연산으로 얻어진 플래그(32)는, 신호처리장치(100b)의 플래그입력(136)으로부터 입력되고, 사이클(2)에서 플래그보유회로(7)에 집어넣어져서, 제어선택회로(6)에 의한 제어신호(22,23)의 선택에 사용된다. 신호처리장치(100b)의 명령의 기술에서 PF라는 것은, 전단의 신호처리장치의 플래그를 나타낸다. 신호처리장치(100b)에서는, 사이클(2)에서, 전단의 신호처리장치(100a)의 사이클(1)의 연산결과의 플래그가 1이면 1을 데이터보유회로(103)에 저장하고, 플래그가 0이면 0을 데이터보유회로(103)에 저장한다. 이 명령도 조건이 딸린 연산명령이고, 필드(add1)는 010, 필드(add0)는 000, 필드(pi,qi,r10,ri1)는 전부 0으로, 제어신호(22,23)에 각각 01000, 00000을 출력한다. 플래그(F)의 값이 1인 경우, 정수출력(114)으로서 출력된 값(1)이 가산기(101)에 입력(113)으로서 공급되고, 연산결과(31)로서 1이 출력된다. 플래그(F)의 값이 0인 경우는, 가산기(101)에는 입력(111,112,113)으로서 모두 0이 공급되므로, 연산결과(31)에는 0이 출력된다. 연산결과(31)는 데이터보유회로(103)에 저장된다.
사이클(3,4,5)에서도 마찬가지로 연산이 수행되지만, 이 경우, 데이터보유회로(103)에 저장된 데이터(E)를 왼쪽으로 1비트 이동한 값이 가산된다.
이것에 의해, 신호처리장치(100a)에서 4회의 연산으로 얻어진 플래그를 사용해서, 다음 단의 신호처리장치(100b)에서 4비트의 몫이 얻어진다. 예를 들면, 데이터(A)가 4이고 데이터(B)가 3인 경우, 신호처리장치(100b)의 데이터보유회로(103)에는 1010이 얻어진다. 또한, 이 4비트 데이터의 가장 높은 위치의 비트는 정수첫째자리이고, 이하는 소수부이다.
이렇게 신호처리장치를 연결하고, 다른 신호처리장치가 출력하는 플래그를 사용해서 조건이 딸린 연산명령을 수행할 수 있다.
또한, 조건이 딸린 분기명령을 사용하지 않기 때문에, 조건에 따라서 연산결과가 얻어지는 타이밍이 변하는 일이 없고, 그 결과를 사용해서 처리를 수행하는 신호처리장치의 제어가 용이하다.
이상과 같이, 본 발명은, 조건에 의해서 상이한 처리를, 조건이 딸린 분기명령을 사용하지 않고 수행할 수 있기 때문에, 처리에 필요한 사이클 수를 적게 할 수 있고, 극히 유용하다.
또한, 처리를 지시하는 명령의 수를 적게 할 수 있고, 명령을 저장하는 프로그램 메모리의 면적을 작게 할 수 있다.
더욱이, 각각의 조건에 대응하는 두개의 제어신호를 플래그로 선택할 수 있고, 처리를 전환하는 회로규모를 작게 하고, 동작속도를 빠르게 하고, 또한, 다양한 처리에 유연하게 대응할 수 있다.
게다가, 조건에 따라서 연산결과가 얻어지는 타이밍이 달라지지 않기 때문에, 그 결과를 사용하는 장치의 제어를 용이하게 할 수 있다.
Claims (27)
- 명령(20)을 해독하고, 제1제어신호(22)와 제2제어신호(23)를 출력하는 명령해독수단과, 플래그신호에 따라서, 상기한 제1제어신호(22)와 상기한 제2제어신호(23)중 어느 하나를 선택해서 출력하는 제어신호선택수단과, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 복수의 입력데이터중 어느 하나를 선택해서 출력하는 데이터선택수단과, 상기한 데이터선택수단이 출력하는 데이터를 입력의 하나로서 연산을 수행하는 연산수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 명령(20)을 해독하고, 제1제어신호(22)와 제2제어신호(23)를 출력하는 명령해독수단과, 플래그신호에 따라서, 상기한 제1제어신호(22)와 상기한 제2제어신호(23)중 어느 하나를 선택해서 출력하는 제어신호선택수단과, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 복수의 입력데이터중 어느 하나를 선택해서 출력하는 복수의 데이터선택수단과, 상기한 복수의 데이터선택수단이 출력하는 데이터를 입력으로서 연산을 수행하는 연산수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기한 데이터선택수단의 복수의 입력데이터중 하나에는 정수(0)가 입력되는 것을 특징으로 하는 신호처리장치.
- 제2항에 있어서, 상기한 데이터선택수단의 복수의 입력데이터중 하나에는 정수(0)가 입력되는 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 입력데이터를 반전해서 출력하는 반전수단을 적어도 하나 갖추고, 상기한 데이터선택수단의 복수의 입력중 어느 하나에 상기한 반전수단의 출력이 접속되고, 상기한 제1 및 제2의 제어신호(22,23)에는 상기 연산수단의 수송입력정보가 포함되고, 상기한 연산수단은 상기한 제어신호선택수단의 출력중의 수송입력정보를 사용해서 연산을 수행하는 것을 특징으로 하는 신호처리장치.
- 제2항에 있어서, 입력데이터를 반전해서 출력하는 반전수단을 적어도 하나 갖추고, 상기한 데이터선택수단의 복수의 입력중 어느 하나에 상기한 반전수단의 출력이 접속되고, 상기한 제1 및 제2의 제어신호(22,23)에는 상기 연산수단의 수송입력정보가 포함되고, 상기한 연산수단은 상기한 제어신호선택수단의 출력중의 수송입력정보를 사용해서 연산을 수행하는 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기한 연산수단의 연산결과플래그를 저장하고, 상기한 플래그신호로서 상기한 제어선택수단에 출력하는 플래그보유수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 제2항에 있어서, 상기한 연산수단의 연산결과플래그를 저장하고, 상기한 플래그신호로서 상기한 제어선택수단에 출력하는 플래그보유수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 제7항에 있어서, 상기한 연산수단의 연산결과플래그는, 상기한 연산수단의 연산결과(31)가 마이너스인지 아닌지를 나타내는 플래그인 것을 특징으로 하는 신호처리장치.
- 제8항에 있어서, 상기한 연산수단의 연산결과플래그는, 상기한 연산수단의 연산결과(31)가 마이너스인지 아닌지를 나타내는 플래그인 것을 특징으로 하는 신호처리장치.
- 제7항에 있어서, 상기한 플래그보유수단은 복수의 연산결과플래그를 저장하고, 상기한 복수의 연산결과플래그의 하나를 선택해서 상기한 플래그신호로서 상기한 제어신호선택수단으로 출력하는 것을 특징으로 하는 신호처리장치.
- 제8항에 있어서, 상기한 플래그보유수단은 복수의 연산결과플래그를 저장하고, 상기한 복수의 연산결과플래그의 하나를 선택해서 상기한 플래그신호로서 상기한 제어신호선택수단으로 출력하는 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기한 연산수단의 연산결과플래그와 입력플래그를 입력으로 하고, 상기한 연산결과플래그를 선택해서 저장하고, 상기한 플래그신호로서 상기한 제어선택수단으로 출력하는 플래그보유수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 제2항에 있어서, 상기한 연산수단의 연산결과플래그와 입력플래그를 입력으로 하고, 상기한 연산결과플래그를 선택해서 저장하고, 상기한 플래그신호로서 상기한 제어선택수단으로 출력하는 플래그보유수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기한 명령(20)은, 상기한 플래그신호가 나타내는 두개의 조건에 대한 동작의 제어를 나타내는 제1제어필드와 제2제어필드를 포함하고, 상기한 명령해독수단은, 상기한 명령(20)의 상기한 제1 및 제2의 제어필드를 사용해서 상기한 제1 및 제2제어신호(23)를 생성하는 것을 특징으로 하는 신호처리장치.
- 제2항에 있어서, 상기한 명령(20)은, 상기한 플래그신호가 나타내는 두개의 조건에 대한 동작의 제어를 나타내는 제1제어필드와 제2제어필드를 포함하고, 상기한 명령해독수단은, 상기한 명령의 상기한 제1 및 제2의 제어필드를 사용해서 상기한 제1 및 제2제어신호(23)를 생성하는 것을 특징으로 하는 신호처리장치.
- 명령(20)을 해독하고, 제1제어신호(22)와 제2제어신호(23)를 출력하는 명령해독수단과, 상기한 명령해독수단에 접속되고, 플래그신호에 따라서, 상기한 제1제어신호(22)와 상기한 제2제어신호(23)중 어느 하나를 선택해서 출력하는 제어신호선택수단과, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 복수의 연산입력데이터에 대해서 연산을 수행하는 연산수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 제17항에 있어서, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 복수의 입력데이터중 어느 하나를 선택해서 출력하는 적어도 하나의 데이터선택수단을 갖추고, 상기한 적어도 하나의 데이터선택수단의 출력이 상기한 연산수단의 연산입력데이터로 보내지는 것을 특징으로 하는 신호처리장치.
- 제17항에 있어서, 상기한 명령(20)은, 상기한 플래그신호가 나타내는 두개의 조건에 대한 동작의 제어를 나타내는 제1제어필드와 제2제어필드를 포함하고, 상기한 명령해독수단은, 상기한 명령의 상기한 제1 및 제2의 제어필드를 사용해서 상기한 제1 및 제2제어신호(23)를 생성하는 것을 특징으로 하는 신호처리장치.
- 명령(20)을 해독하고, 제1제어신호(22)와 제2제어신호(23)를 출력하는 명령해독수단과, 상기한 명령해독수단에 접속되고, 플래그신호에 따라서, 상기한 제1제어신호(22)와 상기한 제2제어신호(23)중 어느 하나를 선택해서 출력하는 제어신호선택수단과, 복수의 데이터를 보유하는 제1데이터보유수단과, 상기한 제1데이터보유수단에 접속되고, 상기한 제1데이터보유수단에 저장된 데이터를 이동해서 출력하는 적어도 하나의 이동장치와, 상기한 이동장치의 출력과 정수(0)를 입력으로 하고, 상기한 제어신호선택수단이 출력하는 제어신호에 따라서, 상기한 입력데이터를 선택해서 출력하는 적어도 하나의 데이터선택수단과, 상기한 적어도 하나의 데이터선택수단이 출력하는 데이터를 입력으로 하고 연산을 수행하는 연산수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 제20항에 있어서, 상기한 연산수단이 출력하는 연산결과데이터를 저장해서 출력하는 제2데이터보유수단을 갖추고, 상기한 제2데이터보유수단의 출력이 직접 혹은 상기한 적어도 하나의 데이터선택수단의 하나를 개재해서 상기한 연산수단의 입력의 하나에 공급되는 것을 특징으로 하는 신호처리장치.
- 제21항에 있어서, 상기한 제2데이터보유수단은 데이터를 이동해서 출력하는 것을 특징으로 하는 신호처리장치.
- 제20항에 있어서, 입력데이터를 반전해서 출력하는 반전수단을 적어도 하나 갖추고, 상기한 데이터선택수단의 복수의 입력중 어느 하나에 상기한 반전수단의 출력이 접속되고, 상기한 제1 및 제2제어신호에는 상기한 연산수단의 수송입력정보가 포함되고, 상기한 연산수단은 상기한 제어신호선택수단의 출력중의 수송입력정보를 사용해서 연산을 수행하는 것을 특징으로 하는 신호처리장치.
- 제20항에 있어서, 상기한 연산수단의 연산결과플래그와 입력플래그를 입력으로 하고, 상기한 연산결과플래그와 상기한 입력플래그를 선택해서 저장하고, 상기한 플래그신호로서 상기한 제어선택수단에 출력하는 플래그보유수단을 갖춘 것을 특징으로 하는 신호처리장치.
- 제13항에 있어서, 신호처리장치를 하나의 신호처리요소로 하고, 제1의 상기 신호처리요소와 제2의 상기 신호처리요소를 갖추고, 상기한 제2신호처리요소의 입력플래그에 상기한 제1신호처리요소의 연산수단의 연산결과플래그가 공급되는 것을 특징으로 하는 신호처리장치.
- 제14항에 있어서, 신호처리장치를 하나의 신호처리요소로 하고, 제1의 상기 신호처리요소와 제2의 상기 신호처리요소를 갖추고, 상기한 제2신호처리요소의 입력플래그에 상기한 제1신호처리요소의 연산수단의 연산결과플래그가 공급되는 것을 특징으로 하는 신호처리장치.
- 제24항에 있어서, 신호처리장치를 하나의 신호처리요소로 하고, 제1의 상기 신호처리요소와 제2의 상기 신호처리요소를 갖추고, 상기한 제2신호처리요소의 입력플래그에 상기한 제1신호처리요소의 연산수단의 연산결과플래그가 공급되는 것을 특징으로 하는 신호처리장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8222119A JPH1063500A (ja) | 1996-08-23 | 1996-08-23 | 信号処理装置 |
JP96-222119 | 1996-08-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980018919A true KR19980018919A (ko) | 1998-06-05 |
KR100549705B1 KR100549705B1 (ko) | 2006-04-28 |
Family
ID=16777464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970040218A KR100549705B1 (ko) | 1996-08-23 | 1997-08-22 | 신호처리장치 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6047371A (ko) |
EP (1) | EP0825528A3 (ko) |
JP (1) | JPH1063500A (ko) |
KR (1) | KR100549705B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834338B1 (en) * | 2000-02-18 | 2004-12-21 | Texas Instruments Incorporated | Microprocessor with branch-decrement instruction that provides a target and conditionally modifies a test register if the register meets a condition |
US20070161768A1 (en) * | 2004-01-30 | 2007-07-12 | Hidetoshi Odaka | Method for producing hydrolyzable silicon group-containing oxyalkylene polymer and curing composition thereof |
US7908463B2 (en) * | 2007-06-26 | 2011-03-15 | Globalfoundries Inc. | Immediate and displacement extraction and decode mechanism |
FR3094512A1 (fr) | 2019-03-29 | 2020-10-02 | Stmicroelectronics (Rousset) Sas | Procédé d'authentification d'un processeur |
FR3094513B1 (fr) * | 2019-03-29 | 2023-07-14 | Proton World Int Nv | Procédé d'authentification d'un processeur |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5741741A (en) * | 1980-08-26 | 1982-03-09 | Nec Corp | Central arithmetic processor |
JPS59148948A (ja) * | 1983-02-15 | 1984-08-25 | Nec Corp | マイクロコンピユ−タ |
US4992934A (en) * | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
JP2806524B2 (ja) * | 1988-03-04 | 1998-09-30 | 日本電気株式会社 | ベクトル演算命令発行制御方法 |
JP2535252B2 (ja) * | 1990-10-17 | 1996-09-18 | 三菱電機株式会社 | 並列処理装置 |
JP2959104B2 (ja) * | 1990-10-31 | 1999-10-06 | 日本電気株式会社 | 信号処理プロセッサ |
US5404557A (en) * | 1991-11-22 | 1995-04-04 | Matsushita Electric Industrial Co., Ltd. | Data processor with plural instruction execution parts for synchronized parallel processing and exception handling |
KR940009920B1 (ko) * | 1991-11-28 | 1994-10-18 | 주식회사금호 | 개량된 타이어 성형기용 고무밴드 및 그것의 제조방법 |
JP3055999B2 (ja) * | 1992-03-16 | 2000-06-26 | 日本電気株式会社 | マイクロプログラム制御装置群 |
FR2693571B1 (fr) * | 1992-07-13 | 1994-09-30 | Texas Instruments France | Système de traitement de données dont le programme de commande comporte des instructions dépendant de paramètres d'état. |
JPH0683618A (ja) * | 1992-08-31 | 1994-03-25 | Nec Corp | フラグ制御回路 |
US5606677A (en) * | 1992-11-30 | 1997-02-25 | Texas Instruments Incorporated | Packed word pair multiply operation forming output including most significant bits of product and other bits of one input |
US6058473A (en) * | 1993-11-30 | 2000-05-02 | Texas Instruments Incorporated | Memory store from a register pair conditional upon a selected status bit |
US5581717A (en) * | 1994-03-01 | 1996-12-03 | Intel Corporation | Decoding circuit and method providing immediate data for a micro-operation issued from a decoder |
JP3105738B2 (ja) * | 1994-06-10 | 2000-11-06 | 日本電気株式会社 | 情報処理装置 |
KR960015210A (ko) * | 1994-10-28 | 1996-05-22 | 이문기 | 수퍼스칼라 마이크로프로세서 정수 실행 유닛의 구조 |
JP2931890B2 (ja) * | 1995-07-12 | 1999-08-09 | 三菱電機株式会社 | データ処理装置 |
US5710914A (en) * | 1995-12-29 | 1998-01-20 | Atmel Corporation | Digital signal processing method and system implementing pipelined read and write operations |
-
1996
- 1996-08-23 JP JP8222119A patent/JPH1063500A/ja active Pending
-
1997
- 1997-08-11 US US08/907,953 patent/US6047371A/en not_active Expired - Lifetime
- 1997-08-22 KR KR1019970040218A patent/KR100549705B1/ko not_active IP Right Cessation
- 1997-08-22 EP EP97114599A patent/EP0825528A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JPH1063500A (ja) | 1998-03-06 |
EP0825528A3 (en) | 1998-12-23 |
KR100549705B1 (ko) | 2006-04-28 |
EP0825528A2 (en) | 1998-02-25 |
US6047371A (en) | 2000-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1175154A (en) | Shift circuit | |
EP0417314B1 (en) | Serial in to parallel out converting circuit | |
US5469377A (en) | Floating point computing device for simplifying procedures accompanying addition or subtraction by detecting whether all of the bits of the digits of the mantissa are 0 or 1 | |
KR940004324B1 (ko) | 연산장치 | |
US5440504A (en) | Arithmetic apparatus for digital signal processor | |
US5508951A (en) | Arithmetic apparatus with overflow correction means | |
KR910000787B1 (ko) | 데이타 처리 가속기 | |
DE59408784D1 (de) | Signalverarbeitungseinrichtung | |
GB2286471A (en) | Arithmetic unit for division | |
US4617641A (en) | Operation unit for floating point data having a variable length exponent part | |
KR100549705B1 (ko) | 신호처리장치 | |
US20140181164A1 (en) | Selectively combinable shifters | |
EP0540175B1 (en) | Digital signal processing apparatus | |
EP0180157B1 (en) | Information processing unit | |
US4852038A (en) | Logarithmic calculating apparatus | |
US5905662A (en) | Digital processing system for binary addition/subtraction | |
US5987488A (en) | Matrix processor | |
US6795841B2 (en) | Parallel processing of multiple data values within a data word | |
KR100241071B1 (ko) | 합과 합+1을 병렬로 생성하는 가산기 | |
US6470369B1 (en) | Euclid mutual division arithmetic circuit and processing circuit | |
JP3225763B2 (ja) | 符号化装置および復号化装置 | |
JPH04352518A (ja) | 演算装置 | |
US6681236B2 (en) | Method of performing operations with a variable arithmetic | |
SU1605935A3 (ru) | Способ перекодировани @ -разр дных кодовых слов и устройство дл его осуществлени | |
GB871477A (en) | Improvements in or relating to electric digital computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20101222 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |