KR100549705B1 - 신호처리장치 - Google Patents
신호처리장치 Download PDFInfo
- Publication number
- KR100549705B1 KR100549705B1 KR1019970040218A KR19970040218A KR100549705B1 KR 100549705 B1 KR100549705 B1 KR 100549705B1 KR 1019970040218 A KR1019970040218 A KR 1019970040218A KR 19970040218 A KR19970040218 A KR 19970040218A KR 100549705 B1 KR100549705 B1 KR 100549705B1
- Authority
- KR
- South Korea
- Prior art keywords
- control signal
- data
- flag
- signal
- control
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 23
- 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 7
- 230000000295 complement effect Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
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은 본 발명의 제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을 가산해서, 레지스터 r3에 저장하는 것, 즉, 데이터 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)에 입력(12)으로서 공급한다. 반전회로(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)로부터 레지스터rs1 및 레지스터 rs2의 데이터를 읽어내고, 각각, 출력(24,26)으로서 출력한다. 또한, 명령해독기(3)는 필드 op를 해독해서, 연산기(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)가 데이터보유회로(102)의 출력(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일 경우의 제어정보이고, 필드 ri는 플래그가 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)로서 출력하고, 필드 add1의값과 필드 ri1의 값과 자리올림입력의 값을 연결한 5비트의 신호를 제어신호(23)로서 출력한다. 제어신호(22)로서 출력하는 자리올림입력의 값은, 필드 pi, qi, ri0중 하나가 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비트 데이터의 최상위비트는 정수 첫째자리이고, 이하는 소수부이다.
이렇게 신호처리장치를 연결하고, 다른 신호처리장치가 출력하는 플래그를 사용해서 조건이 딸린 연산명령을 수행할 수 있다.
또한, 조건이 딸린 분기명령을 사용하지 않기 때문에, 조건에 따라서 연산결과가 얻어지는 타이밍이 변하는 일이 없고, 그 결과를 사용해서 처리를 수행하는 신호처리장치의 제어가 용이하다.
이상과 같이, 본 발명은 조건에 의해서 상이한 처리를 조건이 딸린 분기명령을 사용하지 않고 수행할 수 있기 때문에, 처리에 필요한 사이클 수를 적게 할 수 있어 매우 유용하다.
또한, 처리를 지시하는 명령의 수를 적게 할 수 있고, 명령을 저장하는 프로그램 메모리의 면적을 작게 할 수 있다.
더욱이, 각각의 조건에 대응하는 두 개의 제어신호를 플래그로 선택할 수 있고, 처리를 전환하는 회로규모를 작게 하고, 동작속도를 빠르게 하고, 또한, 다양한 처리에 유연하게 대응할 수 있다.
게다가, 조건에 따라서 연산결과가 얻어지는 타이밍이 달라지지 않기 때문에, 그 결과를 사용하는 장치의 제어를 용이하게 할 수 있다.
도 1은 본 발명의 제1실시예에 있어서의 신호처리장치의 블럭도.
도 2는 본 발명의 제1실시예에 있어서, 조건에 따라서 연산의 종류를 바꾸는 신호처리장치의 블럭도.
도 3은 본 발명의 제2실시예에 있어서의 신호처리장치의 블럭도.
도 4는 본 발명의 제2실시예에 있어서의 명령의 포맷을 나타내는 도면.
도 5는 본 발명의 제3실시예에 있어서, 2개의 신호처리장치를 접속한 구성을 나타내는 도면.
Claims (17)
- 명령을 해독하여, 제 1제어신호, 제 2제어신호, 제 3제어신호 또는 제 4제어신호를 생성하는 명령해독수단;플래그신호에 따라, 상기 제 1제어신호와 상기 제 2제어신호 또는 상기 제 3제어신호와 상기 제 4제어신호 중 어느 한쪽을 선택해 출력하는 제어신호선택수단;상기 제어신호선택수단이 출력하는 제어신호가 상기 제 1제어신호와 상기 제 2제어신호인 경우에는, 상기 제 1제어신호에 따라, 또한, 상기 제어신호선택수단이 출력하는 제어신호가 상기 제 3제어신호와 상기 제 4제어신호인 경우에는, 상기 제 3제어신호에 따라, 복수의 입력데이터 중 어느 하나를 선택해 출력하는 제 2데이터선택수단;상기 제어신호선택수단이 출력하는 제어신호가 상기 제 1제어신호와 상기 제 2제어신호인 경우에는, 상기 제 2제어신호에 따라, 또한, 상기 제어신호선택수단이 출력하는 제어신호가 상기 제 3제어신호와 상기 제 4제어신호인 경우에는, 상기 제 4제어신호에 따라, 복수의 입력데이터 중 어느 하나를 선택하여 출력하는 제 2데이터선택수단 및상기 제 1데이터선택수단이 출력하는 데이터와 상기 제 2데이터선택수단이 출력하는 데이터를 입력으로 해서 연산을 수행함과 아울러, 연산값이 일부를 상기 플래그신호로 해서 출력하는 연산수단을 구비한 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기 데이터 선택수단의 복수의 입력데이터 중 하나에는 정수 0이 입력되는 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 입력데이터를 반전해서 출력하는 반전수단을 하나 이상 구비하고;상기 데이터 선택수단의 복수의 입력 중 하나에 상기 반전수단의 출력이 접속되고;상기 제1제어신호 및 제2제어신호에는 상기 연산수단의 자리올림입력정보가 포함되고; 그리고상기 연산수단은 상기 제어신호 선택수단의 출력 중 자리올림입력정보를 사용해서 연산을 수행하는 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기 연산수단의 연산결과플래그는 상기 연산수단의 연산결과가 음수인지 아닌지를 나타내는 플래그인 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기 연산수단의 연산결과플래그를 저장하고, 상기 플래그 신호로서 상기 제어선택수단에 출력하는 플래그보유수단을 구비하고,상기 플래그보유수단은 복수의 연산결과플래그를 저장하고, 상기 복수의 연산결과플래그의 하나를 선택해서 상기 플래그신호로서 상기 제어신호 선택수단으로 출력하는 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기 연산수단의 연산결과플래그와 입력플래그를 입력으로 하여 상기 연산결과플래그와 상기 입력플래그를 선택해서 저장하고, 상기 플래그신호로서 상기 제어선택수단에 출력하는 플래그보유수단을 구비한 것을 특징으로 하는 신호처리장치.
- 제1항에 있어서, 상기 명령은 상기 플래그신호가 나타내는 두 개의 조건에 대한 동작의 제어를 나타내는 제1제어필드와 제2제어필드를 포함하고,상기 명령해독수단은 상기 명령의 상기 제1제어필드 및 제2제어필드를 사용해서 상기 제1제어신호 및 제2제어신호를 생성하는 것을 특징으로 하는 신호처리장치.
- 명령을 해독하여, 제 1제어신호, 제 2제어신호, 제 3제어신호 또는 제 4제어신호를 생성하는 명령해독수단;상기 명령해독수단에 접속되고, 플래그신호에 따라, 상기 제 1제어신호와 상기 제 2제어신호 또는 상기 제 3제어신호와 상기 제 4제어신호 중 어느 한쪽을 선택해 출력하는 제어신호선택수단 및상기 제어신호 선택수단이 출력하는 제어신호에 따라서 복수의 연산입력데이터에 대해서 연산을 수행함과 아울러, 연산값의 일부를 상기 플래그 신호로 출력하는 연산수단을 구비한 것을 특징으로 하는 신호처리장치.
- 제8항에 있어서, 상기 제어신호 선택수단이 출력하는 제어신호에 따라서 복수의 입력데이터 중 하나를 선택해서 출력하는 하나 이상의 데이터 선택수단을 구비하고,상기 하나 이상의 데이터 선택수단의 출력이 상기 연산수단의 연산입력데이터로 공급되는 것을 특징으로 하는 신호처리장치.
- 제8항에 있어서, 상기 명령은 상기 플래그신호가 나타내는 두 개의 조건에 대한 동작의 제어를 나타내는 제1제어필드와 제2제어필드를 포함하고,상기 명령해독수단은 상기 명령의 상기 제1제어필드 및 제1제어필드를 사용해서 상기 제1제어신호 및 제2제어신호를 생성하는 것을 특징으로 하는 신호처리장치.
- 명령을 해독하여, 제 1제어신호, 제 2제어신호, 제 3제어신호 또는 제 4제어신호를 생성하는 명령해독수단;상기 명령해독수단에 접속되고, 플래그신호에 따라, 상기 제 1제어신호와 상기 제 2제어신호 또는 상기 제 3제어신호와 상기 제 4제어신호 중 어느 한쪽을 선택해 출력하는 제어신호선택수단;복수의 데이터를 보유하는 제 1데이터 보유수단;상기 제 1데이터 보유수단에 접속되고, 상기 제 1데이터 보유수단에 저장된 데이터를 이동해서 출력하는 하나 이상의 시프터;상기 시프터의 출력과 정수 0을 입력으로 하고, 상기 제어신호선택수단이 출력하는 제어신호가 상기 제 1제어신호와 상기 제 2제어신호인 경우에는, 상기 제 1제어신호에 따라, 또한, 상기 제어신호선택수단이 출력하는 제어신호가 상기 제 3제어신호와 상기 제 4제어신호인 경우에는, 상기 제 3제어신호에 따라, 복수의 입력데이터 중 어느 하나를 선택해 출력하는 제 1데이터선택수단;상기 제어신호선택수단이 출력하는 제어신호가 상기 제 1제어신호와 상기 제 2제어신호인 경우에는, 상기 제 2제어신호에 따라, 또한, 상기 제어신호선택수단이 출력하는 제어신호가 상기 제 3제어신호와 상기 제 4제어신호인 경우에는, 상기 제 4제어신호에 따라, 복수의 입력데이터 중 어느 하나를 선택하여 출력하는 제 2데이터선택수단 및상기 제 1데이터선택수단이 출력하는 데이터와 상기 제 2데이터선택수단이 출력하는 데이터를 입력으로 해서 연산을 수행함과 아울러, 연산값의 일부를 상기 플래그신호로해서 출력하는 연산수단을 구비한 것을 특징으로 하는 신호처리장치.
- 제11항에 있어서, 상기 연산수단이 출력하는 연산결과데이터를 저장해서 출력하는 제2데이터 보유수단을 구비하고,상기 제2데이터 보유수단의 출력이 직접 혹은 상기 하나 이상의 데이터 선택수단의 하나를 통해서 상기 연산수단의 입력의 하나로 공급되는 것을 특징으로 하는 신호처리장치.
- 제12항에 있어서, 상기 제2데이터 보유수단의 데이터를 이동하여 출력하는 시프터를 더 포함하는 것을 특징으로 하는 신호처리장치.
- 제11항에 있어서, 입력데이터를 반전해서 출력하는 반전수단을 하나 이상 구비하고,상기 데이터 선택수단의 복수의 입력 중 하나에 상기 반전수단의 출력이 접속되고,상기 제1제어신호 및 제2제어신호에는 상기 연산수단의 자리올림입력정보가 포함되고,상기 연산수단은 상기 제어신호 선택수단의 출력 중 자리올림입력정보를 사용해서 연산을 수행하는 것을 특징으로 하는 신호처리장치.
- 제11항에 있어서, 상기 연산수단의 연산결과플래그와 입력플래그를 입력으로하여 상기 연산결과플래그와 상기 입력플래그를 선택해서 저장하고, 상기 플래그신호로서 상기 제어선택수단에 출력하는 플래그보유수단을 구비한 것을 특징으로 하는 신호처리장치.
- 제6항에 기재된 신호처리장치를 하나의 신호처리요소로 하고,제1 상기 신호처리요소와 제2 상기 신호처리요소를 구비하고,상기 제2신호처리요소의 입력플래그에 상기 제1신호처리요소의 연산수단의 연산결과플래그가 공급되는 것을 특징으로 하는 신호처리장치.
- 제15항에 기재된 신호처리장치를 하나의 신호처리요소로 하고,제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 KR19980018919A (ko) | 1998-06-05 |
KR100549705B1 true 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 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
KR930009756A (ko) * | 1991-11-28 | 1993-06-21 | 윤양중 | 개량된 타이어 성형기용 고무밴드 및 그것의 제조방법 |
KR960001991A (ko) * | 1994-06-10 | 1996-01-26 | 가네꼬 히사시 | 정보 처리 장치 |
KR960015210A (ko) * | 1994-10-28 | 1996-05-22 | 이문기 | 수퍼스칼라 마이크로프로세서 정수 실행 유닛의 구조 |
US5534799A (en) * | 1992-08-31 | 1996-07-09 | Nec Corporation | Compact flag control circuit capable of producing a zero flag in a short time |
KR100348951B1 (ko) * | 1993-11-30 | 2003-01-24 | 텍사스 인스트루먼츠 인코포레이티드 | 조건부레지스터쌍으로부터의메모리저장 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5741741A (en) * | 1980-08-26 | 1982-03-09 | Nec Corp | Central arithmetic processor |
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 |
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. |
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 |
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 |
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
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
KR930009756A (ko) * | 1991-11-28 | 1993-06-21 | 윤양중 | 개량된 타이어 성형기용 고무밴드 및 그것의 제조방법 |
US5534799A (en) * | 1992-08-31 | 1996-07-09 | Nec Corporation | Compact flag control circuit capable of producing a zero flag in a short time |
KR100348951B1 (ko) * | 1993-11-30 | 2003-01-24 | 텍사스 인스트루먼츠 인코포레이티드 | 조건부레지스터쌍으로부터의메모리저장 |
KR960001991A (ko) * | 1994-06-10 | 1996-01-26 | 가네꼬 히사시 | 정보 처리 장치 |
KR960015210A (ko) * | 1994-10-28 | 1996-05-22 | 이문기 | 수퍼스칼라 마이크로프로세서 정수 실행 유닛의 구조 |
Non-Patent Citations (1)
Title |
---|
IEEE Trans.Parallel & Distributed Systems(1995.08) * |
Also Published As
Publication number | Publication date |
---|---|
JPH1063500A (ja) | 1998-03-06 |
EP0825528A3 (en) | 1998-12-23 |
KR19980018919A (ko) | 1998-06-05 |
EP0825528A2 (en) | 1998-02-25 |
US6047371A (en) | 2000-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3729881B2 (ja) | 並列加算および平均演算を行うための回路およびその方法 | |
CN108694038A (zh) | 专用处理块中的混合精度浮点运算电路 | |
KR940004324B1 (ko) | 연산장치 | |
EP2569694A2 (en) | Conditional compare instruction | |
US4857882A (en) | Comparator array logic | |
JPH0470662B2 (ko) | ||
US10162633B2 (en) | Shift instruction | |
US5109524A (en) | Digital processor with a four part data register for storing data before and after data conversion and data calculations | |
KR100880614B1 (ko) | 단일 명령어 다중 데이터 처리 | |
KR100549705B1 (ko) | 신호처리장치 | |
US6167420A (en) | Multiplication method and multiplication circuit | |
US9933996B2 (en) | Selectively combinable shifters | |
US3001708A (en) | Central control circuit for computers | |
US4852038A (en) | Logarithmic calculating apparatus | |
US5317531A (en) | Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division | |
US10838718B2 (en) | Processing device, arithmetic unit, and control method of processing device | |
WO2002029552A1 (en) | Single instruction multiple data processing | |
KR100241071B1 (ko) | 합과 합+1을 병렬로 생성하는 가산기 | |
US6470369B1 (en) | Euclid mutual division arithmetic circuit and processing circuit | |
GB2362732A (en) | Parallel processing of multiple data values within a composite data word | |
US6681236B2 (en) | Method of performing operations with a variable arithmetic | |
JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
KR100315303B1 (ko) | 디지탈 신호 처리기 | |
GB871477A (en) | Improvements in or relating to electric digital computers | |
KR100265358B1 (ko) | 고속의쉬프팅장치 |
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 |