KR100252766B1 - 고속으로 동작하는 스티키 신호 생성기 - Google Patents

고속으로 동작하는 스티키 신호 생성기 Download PDF

Info

Publication number
KR100252766B1
KR100252766B1 KR1019970017726A KR19970017726A KR100252766B1 KR 100252766 B1 KR100252766 B1 KR 100252766B1 KR 1019970017726 A KR1019970017726 A KR 1019970017726A KR 19970017726 A KR19970017726 A KR 19970017726A KR 100252766 B1 KR100252766 B1 KR 100252766B1
Authority
KR
South Korea
Prior art keywords
bits
bit
shifting
input
shift register
Prior art date
Application number
KR1019970017726A
Other languages
English (en)
Other versions
KR19980082675A (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 김영환
Priority to KR1019970017726A priority Critical patent/KR100252766B1/ko
Priority to US09/074,175 priority patent/US6057720A/en
Publication of KR19980082675A publication Critical patent/KR19980082675A/ko
Application granted granted Critical
Publication of KR100252766B1 publication Critical patent/KR100252766B1/ko

Links

Images

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
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/525Multiplying only in serial-serial fashion, i.e. both operands being entered serially
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
    • 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
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49952Sticky bit

Abstract

본 발명은 입력된 연산 데이타의 비트수와 동일한 크기를 갖는 시프트 레지스터를 이용하면서도 고속으로 스티키 신호를 생성할 수 있고, 레이아웃 크기도 작은 스티키 신호 생성기를 제공하기 위한 것으로, 이를 위해 본 발명은 부동 소수점 연산 장치에서 고속으로 스티키 비트를 생성하기 위한 장치에 있어서, 입력 데이타의 비트수와 동일한 크기로 구성되고, 자신에게 입력되는 데이터를 외부로부터 입력되는 시프트 제어신호에 응답하여 각기 서로 다른 비트수만큼 시프팅하는, 서로 직렬로 연결된 다수의 시프팅수단; 상기 다수의 시프팅수단 각각의 입력단에 연결되되, 상기 시프트 제어신호에 응답하여 해당 시프팅 수단으로 입력되는 데이타 중 상기 해당 시프팅 수단에서 시프팅되어 버려지는 비트만큼을 선택하여 출력하는 다수의 선택수단; 및 상기 다수의 선택수단으로부터 출력되는 신호들을 입력받아 논리 "1"의 값을 갖는 비트가 존재하는 지를 검사하여 상기 스티키 신호를 출력하는 검출수단을 포함하여 이루어진다.입력된 연산 데이타의 비트수와 동일한 크기를 갖는 시프트 레지스터를 이용하면서도 고속으로 스티키 신호를 생성할 수 있고, 그 레이아웃 크기도 작은 스티키 신호 생성기를 제공하기 위한 것으로, 이를 위해 본 발명은 입력 데이타의 비트수와 동일한 크기로 구성되고, 서로 직렬로 연결되되, 자신에게 입력되는 데이터를 외부로부터 입력되는 시프트 제어신호에 응답하여 서로 다른 비트수만큼 시프팅하는 다수개의 시프팅수단; 상기 시프팅수단의 입력단에 연결되되, 상기 시프트 제어신호에 응답하여 상기 시프팅 수단으로 입력되는 데이타 중 상기 시프팅 수단에서 시프팅되어 버려지는 비트만큼을 선택하여 출력하는 다수개의 선택수단; 및 상기 선택수단으로부터의 각 출력을 입력받아 논리 "1"의 값을 갖는 비트가 존재하는 지를 검사하는 검출수단을 포함한다.

Description

고속으로 동작하는 스티키 신호 생성기{Sticky signal generator operating at high-speed}
본 발명은 부동소수점(floating-point) 연산장치(processor)에 관한 것으로서, 특히 서로 다른 크기를 갖는 두 연산 데이터의 연산 신뢰도를 높이기 위한 스티키(sticky) 신호를 생성하는 장치에 관한 것이다.
전기전자기술협회(IEEE: Institute of Electrical and Electronics Engineers)의 부동소수점 처리에 관한 규정에서 특별한 다섯 가지 예외(EXCEPTION)를 정의하고 있다.
그 다섯 가지 예외 규정에는 연산 데이타의 언더플로우(Underflow), 연산 데이타의 오버플로우(Overflow), 나누어지거나 나눌 수 없는 수에 의한 연산(DIVIDE BY ZERO), 라운드 결과로서의 데이타 부정확성(INEXACT), 정의되어 있지 않은 연산의 수행(INVALID)과 같은 것이 있다.
IEEE에서는 만약 어떤 임의의 연산 동작을 수행하던 중에 이와 같은 예외 규정에 해당하는 사건(event)이 발생하게 되면 단지 이 상태를 플래그(flag) 비트에 기록한 후, 계속적으로 수행중인 연산 과정을 수행하도록 규정하고 있다.
IEEE 표준 규격 754는 이진 부동소수점 연산과 관련된 규정으로, 이는 부동소수점 연산 데이타의 처리를 위한 연산장치(FPU: Floating Point Unit)를 사용하는 모든 시스템에서 지키도록 권유하고 있다.
예를 들어, 마이크로프로세서(microprocessor), 디지탈 신호 처리기(DSP: Digital Signal Processor), 마이크로컨트롤러(microcontroller) 등에서 부동소수점 연산장치(FPU)를 사용하고자 하는 경우 서로 간의 호환을 위해 상기 IEEE에서 규정한 내용을 준수해야 한다.
일반적으로 상기와 같은 부동소수점 연산장치에서 부동소수점 연산 데이타(operand)를 처리하기 위해 먼저, 입력된 두 연산 데이타의 비트수를 일치시킨다. 즉, 입력된 두 연산 데이타의 비트수(자릿수)가 다를 경우 시프트 레지스터를 이용하여 보다 많은 비트수를 갖는 연산 데이타의 비트수를 작은 비트수를 갖는 연산 데이타의 비트수에 일치시키게 된다.
이를 위해 일반적으로 시프트 레지스터를 사용하고 있으며, 이러한 과정을 통해 보다 많은 비트수를 갖는 연산 데이타의 비트들 중 이동(shift)되는 양 만큼의 비트들이 버려지게 된다. 그러나, 만약 이 버려지는 비트들 중에 논리 "1"의 값을 갖는 비트들이 존재한다면 연산을 통해 얻어진 값은 매우 부정확해 질 것이다.
따라서, 이와 같은 서로 다른 크기의 비트수를 갖는 두 연산 데이타를 처리할 경우에 연산 결과로서 얻어지는 데이타의 정확도를 최대한 유지하기 위하여 이동(shift)되어 버려지는 비트들 중 논리 "1"의 값을 갖는 비트가 존재하면 이 상태를 플래그 비트에 설정한 후에 연산의 결과 혹은 연산 과정 중에 이 정보를 이용하도록 하고 있다.
이와 같이 이동(shift)되어 버려지는 비트들 중 논리 "1"의 값을 갖는 비트가 존재하는지의 여부를 알리기 위한 신호가 바로 스티키(sticky) 신호이다.
그런데, 만약 연산을 해야 할 두 연산 데이타가 2의 배수라면("N" 비트라 가정) 이동되어 버려지는 비트들을 보관하기 위하여 "2N" 크기의 시프트 레지스터가 필요하게 될 것이다.
그리고, 연산을 해야 할 두 연산 데이타가 2의 배수가 아니라면("M" 비트라 가정) "M" 비트보다 큰 2의 배수 "K" 비트 크기의 시프트 레지스터가 추가로 요구될 것이다. 즉, 필요한 시프트 레지스터는 "M" + "K" 비트의 크기를 갖는 시프트 레지스터이다.
이와 같이 큰 크기를 갖는 시프트 레지스터가 요구되는 경우는 입력 연산 데이타의 비트수가 2의 배수가 아닌 경우이다.
구체적인 예를 들어 설명하면, 2의 배수인 64 비트의 크기를 갖는 연산 데이타를 처리하기 위해 IEEE 표준 규격 754에 따른 가드(Guard), 라운드(Round), 스티키(Sticky), 오버플로우(Overflow) 비트들이 추가되면 실제 입력 데이타는 68 비트가 된다. 따라서, 이를 처리하기 위하여 68비트보다 큰 2의 배수인 128 비트의 크기를 갖는 시프트 레지스터가 추가적으로 필요해 총 196비트의 크기를 갖는 시프트 레지스터가 필요하게 된다.
그러므로, 시프트 레지스터는 연산에 사용될 두 연산 데이타의 비트수의 크기보다 큰 크기를 가지게 되고, 이로 인해 입력된 두 연산 데이타의 비트수를 일치시키기 위한 이동(shift) 처리 속도는 느려지게 될 것이다.
또한, 이는 시스템의 전체 성능을 저하시키는 요인이 되며, 일정 비트의 크기를 요구하는 데이타 처리 경로와 달라져서 레이아웃(Layout)의 크기 또한 커지게 되고, 복잡한 경로 지정(Routing)으로 인하여 속도의 감소는 필연적이라 할 수 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 입력된 연산 데이타의 비트수와 동일한 크기를 갖는 시프트 레지스터를 이용하면서도 고속으로 스티키 신호를 생성할 수 있고, 레이아웃 크기도 작은 스티키 신호 생성기를 제공하는데 있다.
도 1은 본 발명에 따른 스티키 신호 생성기의 일실시예 회로도,
도 2는 본 발명에 따른 스티키 신호 생성기의 다른 실시예 회로도.
*도면의 주요부분에 대한 부호의 설명
11 내지 14, 21 내지 24 : 시프트 레지스터
15 내지 18, 25 내지 28 : 멀티플렉서
19, 29 내지 33 : 논리합게이트(OR gate)
상기 목적을 달성하기 위한 본 발명은, 부동 소수점 연산 장치에서 고속으로 스티키 비트를 생성하기 위한 장치에 있어서, 입력 데이타의 비트수와 동일한 크기로 구성되고, 자신에게 입력되는 데이터를 외부로부터 입력되는 시프트 제어신호에 응답하여 각기 서로 다른 비트수만큼 시프팅하는, 서로 직렬로 연결된 다수의 시프팅수단; 상기 다수의 시프팅수단 각각의 입력단에 연결되되, 상기 시프트 제어신호에 응답하여 해당 시프팅 수단으로 입력되는 데이타 중 상기 해당 시프팅 수단에서 시프팅되어 버려지는 비트만큼을 선택하여 출력하는 다수의 선택수단; 및 상기 다수의 선택수단으로부터 출력되는 신호들을 입력받아 논리 "1"의 값을 갖는 비트가 존재하는 지를 검사하여 상기 스티키 신호를 출력하는 검출수단을 포함하여 이루어진다.
또한, 본 발명은 부동 소수점 연산 장치에서 고속으로 스티키 비트를 생성하기 위한 장치에 있어서, 입력 데이타의 비트수와 동일한 크기로 구성되고, 자신에게 입력되는 데이터를 외부로부터 입력되는 시프트 제어신호에 응답하여 각기 서로 다른 비트수만큼 시프팅하는, 서로 직렬로 연결된 다수의 시프팅수단; 상기 다수의 시프팅수단 각각의 입력단에 연결되되, 상기 시프트 제어신호에 응답하여 해당 시프팅 수단으로 입력되는 데이타 중 상기 해당 시프팅 수단에서 시프팅되어 버려지는 비트만큼을 선택하여 출력하는 다수의 선택수단; 상기 다수의 선택수단에 각각 연결되어, 상기 선택수단으로부터 출력되는 신호 중 논리 "1"의 값을 갖는 비트가 존재하는지를 검사하는 다수의 제1 검출수단; 및 상기 다수의 제1 검출수단으로부터 출력되는 신호들을 입력받아 논리 "1"의 값을 갖는 비트가 존재하는 지를 검출하여 상기 스티키 신호를 출력하는 제2 검출수단을 포함하여 이루어진다.
먼저, 본 발명을 간략히 요약하면 다음과 같다.
본 발명은 서로 다른 비트수를 갖는 두 연산 데이타들의 비트수를 일치시키기 위해 사용되는 시프트 레지스터의 크기를 입력된 연산 데이타의 비트수와 동일하게 구성하고, 이 시프트 레지스터의 동작에 의해 버려지는 비트들을 멀티플렉서를 통해 입력받아 논리 "1"의 값을 갖는 비트들을 검출하도록 구성된다. 따라서, 본 발명에서는 입력된 연산 데이타가 2의 배수이든 아니든 상관없이 시프트 레지스터의 크기는 입력된 연산 데이타의 비트수와 동일하며, 이동시키는 동작과 동시에 스티키 신호를 생성하기 위한 동작이 수행됨으로 고속으로 입력된 연산 데이타의 비트수를 조절하는 동작을 완료할 수 있다. 또한, 스티키 신호를 생성하기 위한 멀티플렉서의 크기는 여러 개의 시프트 레지스터를 통해 이동 동작이 완료되어감에 따라 버려지는 비트수가 줄어들기 때문에 단계적으로 줄어들게 된다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1 은 본 발명에 따른 스티키 신호 생성기의 일실시예 회로도로서, 도면에서 "11 내지 14"는 시프트 레지스터, "15 내지 18"은 멀티플렉서, "19"는 논리합 게이트(OR gate)를 나타낸다.
본 발명의 실시예에서는 위에서 상술한 바와 같이 입력 데이타가 68비트인 경우를 예로 들어 설명하기로 한다.
본 발명의 일실시예는 도 1 에 도시된 바와 같이 입력 데이타[67:0]의 비트수와 같은 68비트의 크기를 갖는 시프트 레지스터 4개를 직렬로 연결하고, 각 시프트 레지스터의 입력단이 각 멀티플렉서의 입력단과 연결되도록 하였다. 그리고, 각 멀티플렉서의 출력단은 논리합 게이트(OR)의 입력단과 연결되도록 하였다.
여기서, 논리합 게이트(19)는 영(Zero) 신호를 검출하는 영신호 검출기(zero detector)로 대치될 수도 있다.
이하, 일실시예에 따른 본 발명의 동작을 상세히 설명한다.
먼저, 68비트의 입력 데이타[67:0]은 "0" 혹은 "64" 비트 만큼의 시프트 동작을 수행하는 제1 시프트 레지스터(11)로 입력된다.
제1 시프트 레지스터(11)는 시프트 양을 결정하는 제어신호의 비트들 중 최상위비트(MSB: Most Significant Bit) S6의 제어에 따라 "0" 혹은 "64" 비트의 시프트 동작이 결정되어 그 결정된 결과에 따라 입력 데이타를 시프트시킨다.
즉, 제1 시프트 레지스터(11)로 입력되는 제어신호 "S6"이 "0"인 경우에 제1 시프트 레지스터(11)의 출력은 입력된 데이타가 시프트 동작 없이 그대로 출력되고, 입력되는 제어신호 "S6"이 "1"인 경우에 제1 시프트 레지스터(11)의 출력은 입력된 데이타가 64 비트만큼 오른쪽 방향으로 시프트되어 출력된다.
이때, 입력 데이타의 68비트들 중 64비트는 버려지게 되는데, 제1 멀티플렉서(15)는 이 버려지는 64비트를 입력받게 된다. 즉, 제1 멀티플렉서(15)의 일측 입력단은 제1 시프트 레지스터(11)의 입력단에 연결되어 68비트의 입력 데이타 중 하위 64비트의 데이타를 입력받고, 타측 입력단은 논리 "0"의 값을 입력받는다. 그리고, 제1 멀티플렉서(15)는 제1 시프트 레지스터(11)로 입력된 제어신호 S6을 선택제어신호로 입력받는다. 따라서, 제1 시프트 레지스터(11)가 시프트 동작을 수행하지 않을 경우에(S6 = '0') 제1 멀티플렉서(15)는 논리 "0"의 값을 선택하여 출력하고, 제1 시프트 레지스터(11)가 64비트의 시프트 동작을 수행할 경우에(S6 = '1') 제1 멀티플렉서(15)는 입력 데이타 중 64비트의 데이타(DIN[63:0])를 선택하여 논리합 게이트(19)로 출력한다.
이러한 시프트 과정을 통해 제1 시프트 레지스터(11)에 의해 버려지는 64비트의 데이타는 제1 멀티플렉서(15)에 의해 회수된다. 또한, 시프트량을 결정하는 제어신호(S6)가 시프트 레지스터의 제어신호로 사용될 뿐만 아니라 멀티플렉서의 선택제어신호로 같이 사용되므로 입력 데이타의 시프트 동작과 버려지는 비트들 중 논리 "1"의 값을 갖는 비트를 검출하여 스티키 신호를 생성하는 과정이 동시에 수행되어 본 발명은 고속으로 동작하는 것이 가능하다.
제1 시프트 레지스터(11)로부터 출력된 데이타는 다시 제2 시프트 레지스터(12)로 입력되고, 마찬가지로 제2 시프트 레지스터(12)의 동작에 따라 버려지게될 비트들을 회수하기 위해 제1 시프트 레지스터(11)로부터 출력된 데이터의 일부가 제2 멀티플렉서(16)로 입력된다.
제2 시프트 레지스터(12)는 시프트량을 결정하는 제어신호의 비트들 중 "S5"와 "S4"를 입력받으며, 제어신호의 값에 따라 제2 시프트 레지스터(12)는 "0" 혹은 "16" 혹은 "32" 혹은 "48" 비트 만큼을 오른쪽 방향으로 시프트시키는 동작을 수행하게 된다.
예를 들어, 시프트량 제어신호 "S5, S4"의 값은 "0, 0", "0, 1", "1, 0", "1, 1"의 값들을 가질 수 있는데, 제2 시프트 레지스터(12)는 이 시프트량 제어신호가 "0"이면 "0"비트 시프트 동작을 수행하고, 이 시프트량 제어신호가 "1"이면 "16" 비트 시프트 동작을 수행하며, 이 시프트량 제어신호가 "10"이면 "32" 비트 시프트 동작을 수행하고, 이 시프트량 제어신호가 "11"이면 "48" 비트 시프트 동작을 수행한다.
한편, 제2 멀티플렉서(16)는 제2 시프트 레지스터(12)로 입력되는 시프트량 제어신호를 선택제어신호로 입력받아 제2 시프트 레지스터(12)의 동작에 의해 버려지는 비트들을 선택하게 된다. 즉, 제2 멀티플렉서(16)는 선택제어신호가 "0"인 경우 논리 "0"의 값을 선택하여 논리합 게이트(19)로 인가하고, 선택제어신호가 "1"이면 제1 시프트 레지스터(11)로부터 출력된 데이타 중 16비트의 데이타[15:0]을 선택하여 논리합 게이트(19)로 인가한다.
또한, 선택제어신호가 "10"인 경우 제1 시프트 레지스터(11)로부터 출력된 데이타 중 32비트의 데이타[31:0]을 선택하여 논리합 게이트(19)로 인가하고, 선택제어신호가 "11"이면 제1 시프트 레지스터(11)로부터 출력된 데이타 중 48비트의 데이타[47:0]을 선택하여 논리합 게이트(19)로 인가한다.
여기서 알 수 있는 바와 같이 제1 멀티플렉서(15)는 64비트의 크기를 처리할 수 있도록 설계되어 있으나, 제2 멀티플렉서(16)는 48 비트의 크기만을 처리할 수 있도록 설계된다.
마찬가지로, 제2 시프트 레지스터(12)로부터 출력된 데이타는 다시 제3 시프트 레지스터(13)로 입력됨과 동시에 제3 시프트 레지스터(13)의 동작에 따라 버려지게 될 비트들을 회수하기 위해 제3 멀티플렉서(17)로 입력된다.
제3 시프트 레지스터(13)는 시프트량을 결정하는 제어신호의 비트들 중 "S3"과 "S2"를 입력받으며, 이 제어신호의 값에 따라 제3 시프트 레지스터(13)는 "0", "4", "8", "12" 비트 만큼 오른쪽 방향으로 시프트하는 동작들 중 한 동작을 수행하게 된다.
예를 들어, 시프트량 제어신호 "S3, S2"의 값이 "0"이면 제3 시프트 레지스터(13)는 "0"비트 시프트 동작을 수행하고, "1"이면 "4" 비트 시프트 동작을 수행하며, "10"이면 "8" 비트 시프트 동작을 수행하고, "11"이면 "12" 비트 시프트 동작을 수행한다.
그리고, 제3 멀티플렉서(17)는 제3 시프트 레지스터(13)로 입력된 시프트량 제어신호를 선택제어신호로 입력받아 제3 시프트 레지스터(13)의 동작에 의해 버려지는 비트들을 선택하게 된다. 즉, 제3 멀티플렉서(17)는 선택제어신호가 "0"이면 논리 "0"의 값을 선택하여 논리합 게이트(19)로 인가하고, 선택제어신호가 "1"이면 제2 시프트 레지스터(12)로부터 출력된 데이타 중 4비트의 데이타를 선택하여 논리합 게이트(19)로 인가한다.
또한, 선택제어신호가 "10"이면 제2 시프트 레지스터(12)로부터 출력된 데이타 중 8비트의 데이타를 선택하여 논리합 게이트(19)로 인가하고, 선택제어신호가 "11"이면 제2 시프트 레지스터(12)로부터 출력된 데이타 중 12비트의 데이타를 선택하여 논리합 게이트(19)로 인가한다.
위와 동일한 방식으로, 제4 시프트 레지스터(14)는 시프트량을 결정하는 제어신호의 비트들 중 "S1"과 "S0"를 입력받으며, 이 제어신호의 값에 따라 제3 시프트 레지스터(13)로부터 입력된 데이타들을 "0", "1", "2", "3" 비트 만큼 오른쪽 방향으로 시프트시키는 동작들 중 한 동작을 수행하게 된다.
예를 들어, 시프트량 제어신호 "S1, S0"의 값이 "0"이면 제4 시프트 레지스터(14)는 "0"비트 시프트 동작을 수행하고, "1"이면 "1" 비트 시프트 동작을 수행하며, "10"이면 "2" 비트 시프트 동작을 수행하고, "11"이면 "3" 비트 시프트 동작을 수행한다.
그리고, 제4 멀티플렉서(18)는 제4 시프트 레지스터(14)로 입력된 시프트량 제어신호를 선택제어신호로 입력받아 제4 시프트 레지스터(14)의 동작에 의해 버려지는 비트들을 선택하게 된다. 즉, 제4 멀티플렉서(18)는 선택제어신호가 "0"이면 논리 "0"의 값을 선택하여 논리합 게이트(19)로 인가하고, 선택제어신호가 "1"이면 제3 시프트 레지스터(13)로부터 출력된 데이타 중 1비트의 데이타를 선택하여 논리합 게이트(19)로 인가한다.
또한, 선택제어신호가 "10"이면 제3 시프트 레지스터(13)로부터 출력된 데이타 중 2비트의 데이타를 선택하여 논리합 게이트(19)로 인가하고, 선택제어신호가 "11"이면 제3 시프트 레지스터(13)로부터 출력된 데이타 중 3비트의 데이타를 선택하여 논리합 게이트(19)로 인가한다.
그리고, 제4 시프트 레지스터(14)로부터 출력되는 68비트의 출력 데이타 중 [0]비트의 데이타는 그 자체로 스티키 신호의 의미를 포함하고 있으므로 논리합 게이트(19)의 입력단에 인가된다.
논리합 게이트(19)는 제1 내지 제4 멀티플렉서(15 내지 18)로부터 출력되는 데이타와 제4 시프트 레지스터(14)로부터 나오는 [0]비트의 출력 데이타를 논리합하여 이 입력된 데이타들 중 논리 "1"의 값을 갖는 비트가 있는지 조사한다. 그리고, 그 결과는 스티키 신호로 출력되게 된다.
마찬가지로, 논리합 게이트(19)가 아닌 영신호 검출기일 경우에도, 영신호 검출기는 제1 내지 제4 멀티플렉서(15 내지 18)로부터 출력된 데이타와 제4 시프트 레지스터(14)로부터 인가된 [0]비트의 출력 데이타들 중 논리 "1"의 값을 갖는 비트가 있는지 조사하여 그 결과를 출력한다.
도 2 는 본 발명에 따른 스티키 신호 생성기의 다른 실시예를 나타낸 도면으로, 도면에서 "21 내지 24"는 시프트 레지스터, "25 내지 28"은 멀티플렉서, "29 내지 33"은 논리합 게이트를 각각 나타낸다.
도 2 에 나타낸 본 발명의 다른 실시예는 도 1 에서 기술한 본 발명의 구성 요소를 그대로 이용하되, 각 멀티플렉서의 출력단마다 별도의 논리합 게이트를 추가하고, 이 각 논리합 게이트의 출력을 다시 논리합 게이트로 입력되도록 하였다.
이러한 다른 실시예에 따른 본 발명은 해당 시프트 레지스터가 시프트 동작을 수행하는 동안 각 멀티플렉서에서 선택된 데이타를 논리합하도록 함으로써, 결국 스티키 신호 생성을 위한 최종 출력단의 논리합 게이트(33) 동작을 보다 고속으로 처리할 수 있어, 도 1 에 도시된 일실시예에 따른 본 발명보다 고속으로 동작할 수 있다.
도 2 를 참조하여 다른 실시예에 따른 본 발명의 동작을 설명하면 다음과 같다.
여기서는 도 1 을 통해 설명된 소자들의 동작은 생략하기로 하며, 추가된 소자에 대해서만 설명하기로 한다.
제1 논리합 게이트(29)는 제1 멀티플렉서(25)의 출력단을 통해 출력된 데이타와 논리 "0"의 값을 입력받는다. 그러므로, 제1 시프트 레지스터(21)가 시프트량 제어신호에 따라 시프트 동작을 수행하는 동안 제1 시프트 레지스터(21)에 의해 버려지는 비트들 중 논리 "1"의 값을 갖는 비트가 존재하는지를 검사하게 된다. 그리고, 제1 논리합 게이트(29)에 의해 검사된 결과는 스티키 신호를 최종적으로 출력하는 제5 논리합 게이트(33)로 입력된다.
이와 동일한 방법으로 제2 내지 제4 논리합 게이트(30 내지 32)는 해당되는 각 멀티플렉서(26 내지 28)로부터 출력된 데이타와 논리 "0"의 값을 조합하여 해당되는 각 시프트 레지스터(22 내지 24)의 동작에 의해 버려지는 비트들 중 논리 "1"의 값을 갖는 비트가 있는지를 조사한다. 그리고, 그 결과는 제5 논리합 게이트(33)로 입력된다.
제5 논리합 게이트(33)는 제1 내지 제4 논리합 게이트(29 내지 32)로부터 입력된 신호와 제4 시프트 레지스터(14)로부터 인가된 최하위비트인 [0]비트의 출력 데이타를 논리합하여 스티키 신호를 출력한다.
본 발명의 실시예에서는 오른쪽 방향으로 시프트 동작을 수행하는 시프트 레지스터를 예로들어 설명하였으며, 이는 왼쪽 방향으로 시프트 동작을 수행하는 시프트 레지스터로 대치될 수 있다.
이 경우에 있어서도 상술한 바와 같이 왼쪽 방향으로 시프트 동작을 수행하는 시프트 레지스터에 의해 버려진 비트들을 멀티플렉서를 통해 회수하여 스티키 신호를 생성할 수 있다.
또한, 본 발명의 실시예에서는 입력 데이타가 68비트임을 가정하여 68비트의 크기를 갖는 시프트 레지스터를 예로들어 설명하였으나, 시프트 레지스터는 입력 데이타 비트수의 확장 또는 축소에 따라 입력 데이타의 비트수와 동일한 크기를 갖도록 구성되며, 그 동작 원리는 동일하다.
이상에서 설명한 본 발명은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로, 전술한 실시예 및 도면에 한정되는 것이 아니다.
상기와 같이 이루어지는 본 발명은, 서로 다른 비트수를 갖는 두 연산 데이타들의 비트수를 일치시키기 위해 사용되는 시프트 레지스터를 입력된 연산 데이타의 비트수와 동일하게 구성하고, 이 시프트 레지스터의 동작에 의해 버려지는 비트들을 멀티플렉서를 통해 입력받아 논리 "1"의 값을 갖는 비트들을 검출하여 스티키 신호를 생성함으로써, 입력된 연산 데이타가 2의 배수이든 아니든 상관없이 시프트 레지스터의 크기는 입력된 연산 데이타의 비트수와 동일하게 구성되며, 시프트 동작과 동시에 스티키 신호를 생성하기 때문에 고속 동작이 가능할 뿐만 아니라 레이아웃의 크기도 줄일 수 있는 효과가 있다.
본 발명은 IEEE 표준 규격 754를 만족하는 스티키 신호를 고속으로 생성할 수 있기 때문에 부동소수점 연산을 수행하는 연산 장치의 성능을 향상시킬 수 있고, 결국 이러한 부동소수점 연산장치를 사용하는 프로세서들의 처리 속도를 향상시킬 수 있는 탁월한 효과가 있다.

Claims (21)

  1. 부동 소수점 연산 장치에서 고속으로 스티키 비트를 생성하기 위한 장치에 있어서,
    입력 데이타의 비트수와 동일한 크기로 구성되고, 자신에게 입력되는 데이터를 외부로부터 입력되는 시프트 제어신호에 응답하여 각기 서로 다른 비트수만큼 시프팅하는, 서로 직렬로 연결된 다수의 시프팅수단;
    상기 다수의 시프팅수단 각각의 입력단에 연결되되, 상기 시프트 제어신호에 응답하여 해당 시프팅 수단으로 입력되는 데이타 중 상기 해당 시프팅 수단에서 시프팅되어 버려지는 비트만큼을 선택하여 출력하는 다수의 선택수단; 및
    상기 다수의 선택수단으로부터 출력되는 신호들을 입력받아 논리 "1"의 값을 갖는 비트가 존재하는 지를 검사하여 상기 스티키 신호를 출력하는 검출수단
    을 포함하여 이루어지는 스티키 신호 생성기.
  2. 제 1 항에 있어서, 상기 다수의 시프팅수단은 각각,
    68비트의 크기를 갖는 시프트 레지스터
    를 포함하여 이루어지는 스티키 신호 생성기.
  3. 제 1 항에 있어서, 상기 다수의 선택수단은 각각,
    상기 해당 시프팅수단의 시프팅 동작의 수행 결과에 의해 버려지는 비트들을 일측 입력단에 입력받고, 타측 입력단은 논리 "0"의 값을 입력받아 상기 시프트 제어신호에 응답하여 상기 두 입력 중 하나를 선택하여 출력하는 멀티플렉서
    를 포함하여 이루어지는 스티키 신호 생성기.
  4. 제 1 항에 있어서, 상기 검출수단은,
    상기 다수의 선택수단들로부터 출력되는 신호들 및 상기 다수의 시프팅수단 중 최종단 시프팅수단으로부터 출력되는 시프팅 동작이 완료된 데이타의 최하위비트를 입력받아 논리합하여 논리합한 결과를 상기 스티키 신호로 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  5. 제 1 항에 있어서, 상기 검출수단은,
    영신호 검출기
    를 포함하여 이루어지는 스티키 신호 생성기.
  6. 제 2 항에 있어서, 상기 다수의 시프팅 수단은,
    직렬로 연결된 68비트 크기의 제1, 제2, 제3 및 제4 시프트레지스터
    를 포함하는 것을 특징으로 하는 스티키 신호 생성기.
  7. 제 6 항에 있어서, 상기 제1 시프트레지스터는,
    외부로부터 입력되는 상기 시프트 제어신호의 최상위비트에 응답하여 상기 입력 데이타를 시프팅 동작없이 출력하거나, 또는 64비트 시프팅시켜 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  8. 제 7 항에 있어서, 상기 제2 시프트레지스터는,
    외부로부터 입력된 상기 시프트 제어신호의 최상위 비트 다음의 하위 2비트에 응답하여 상기 제1 시프트레지스터로부터 출력되어 입력되는 데이타를 시프팅 동작없이 출력하거나, 또는 16비트, 32비트, 48비트 시프팅 동작 중 어느 한 동작을 수행하여 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  9. 제 8 항에 있어서, 상기 제3 시프트레지스터는,
    외부로부터 입력된 상기 시프트 제어신호의 상기 하위 2비트 다음의 하위 2비트에 응답하여 상기 제2 시프트레지스터로부터 출력되어 입력되는 데이타를 시프팅 동작없이 출력하거나, 또는 4비트, 8비트, 12비트 시프팅 동작 중 어느 한 동작을 수행하여 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  10. 제 9 항에 있어서, 상기 제4 시프트레지스터는,
    외부로부터 입력된 상기 시프트 제어신호의 최하위 2비트에 응답하여 상기 제3 시프트레지스터로부터 출력되어 입력되는 데이타를 시프팅 동작없이 출력하거나, 또는 1비트, 2비트, 3비트 시프팅 동작 중 어느 한 동작을 수행하여 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  11. 부동 소수점 연산 장치에서 고속으로 스티키 비트를 생성하기 위한 장치에 있어서,
    입력 데이타의 비트수와 동일한 크기로 구성되고, 자신에게 입력되는 데이터를 외부로부터 입력되는 시프트 제어신호에 응답하여 각기 서로 다른 비트수만큼 시프팅하는, 서로 직렬로 연결된 다수의 시프팅수단;
    상기 다수의 시프팅수단 각각의 입력단에 연결되되, 상기 시프트 제어신호에 응답하여 해당 시프팅 수단으로 입력되는 데이타 중 상기 해당 시프팅 수단에서 시프팅되어 버려지는 비트만큼을 선택하여 출력하는 다수의 선택수단;
    상기 다수의 선택수단에 각각 연결되어, 상기 선택수단으로부터 출력되는 신호 중 논리 "1"의 값을 갖는 비트가 존재하는지를 검사하는 다수의 제1 검출수단; 및
    상기 다수의 제1 검출수단으로부터 출력되는 신호들을 입력받아 논리 "1"의 값을 갖는 비트가 존재하는 지를 검출하여 상기 스티키 신호를 출력하는 제2 검출수단
    을 포함하여 이루어지는 스티키 신호 생성기.
  12. 제 11 항에 있어서, 상기 다수의 시프팅수단은 각각,
    68비트의 크기를 갖는 시프트레지스터를 포함한 것을 특징으로 하는 스티키 신호 생성기.
  13. 제 11 항에 있어서, 상기 다수의 선택수단은 각각,
    상기 해당 시프팅수단의 시프팅 동작의 수행 결과에 의해 버려지는 비트들을 일측 입력단에 입력받고, 타측 입력단은 논리 "0"의 값을 입력받아 상기 시프트 제어신호에 응답하여 상기 두 입력 중 하나를 선택하여 출력하는 멀티플렉서
    를 포함하여 이루어지는 스티키 신호 생성기.
  14. 제 11 항에 있어서, 상기 제1 및 제2 검출수단은 각각,
    논리합 게이트를 포함한 것을 특징으로 하는 스티키 신호 생성기.
  15. 제 11 항에 있어서, 상기 제1 및 제2 검출수단은 각각,
    영신호 검출기를 포함한 것을 특징으로 하는 스티키 신호 생성기.
  16. 제 14 항에 있어서, 상기 제2 검출수단은,
    상기 다수의 제1 검출수단으로부터 출력되는 신호들 및 상기 다수의 시프팅수단 중 최종단 시프팅수단으로부터 출력되는 시프팅 동작이 완료된 데이타의 최하위비트를 입력받아 논리합하여 논리합한 결과를 상기 스티키 신호로 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  17. 제 12 항에 있어서, 상기 다수의 시프팅수단은,
    직렬로 연결된 68비트의 크기를 갖는 제1, 제2, 제3 및 제4 시프트레지스터로 이루어지는 것을 특징으로 하는 스티키 신호 생성기.
  18. 제 17 항에 있어서, 상기 제1 시프트레지스터는,
    외부로부터 입력된 상기 시프트 제어신호의 최상위비트에 응답하여 상기 입력 데이터를 시프팅 동작없이 출력하거나, 또는 64비트 시프팅시켜 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  19. 제 18 항에 있어서, 상기 제2 시프트레지스터는,
    외부로부터 입력된 상기 시프트 제어신호의 최상위 비트 다음의 하위 2비트에 응답하여 상기 제1 시프트레지스터로부터 출력되어 입력되는 데이터를 시프팅 동작없이 출력하거나, 또는 16비트, 32비트, 48비트 시프팅 동작 중 어느 한 동작을 수행하여 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  20. 제 19 항에 있어서, 상기 제3 시프트레지스터는,
    외부로부터 입력된 상기 시프트 제어신호의 상기 하위 2비트 다음의 하위 2비트에 응답하여 상기 제2 시프트레지스터로부터 출력되어 입력되는 데이타를 시프팅 동작없이 출력하거나, 또는 4비트, 8비트, 12비트 시프팅 동작 중 어느 한 동작을 수행하여 출력하는 것을 특징으로 하는 스티키 신호 생성기.
  21. 제 20 항에 있어서, 상기 제4 시프트레지스터는,
    외부로부터 입력된 상기 시프트 제어신호의 최하위 2비트에 응답하여 상기 제3 시프트레지스터로부터 출력되어 입력되는 데이타를 시프팅 동작없이 출력하거나, 또는 1비트, 2비트, 3비트 시프팅 동작 중 어느 한 동작을 수행하여 출력하는 것을 특징으로 하는 스티키 신호 생성기.
KR1019970017726A 1997-05-08 1997-05-08 고속으로 동작하는 스티키 신호 생성기 KR100252766B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019970017726A KR100252766B1 (ko) 1997-05-08 1997-05-08 고속으로 동작하는 스티키 신호 생성기
US09/074,175 US6057720A (en) 1997-05-08 1998-05-07 High speed sticky signal generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970017726A KR100252766B1 (ko) 1997-05-08 1997-05-08 고속으로 동작하는 스티키 신호 생성기

Publications (2)

Publication Number Publication Date
KR19980082675A KR19980082675A (ko) 1998-12-05
KR100252766B1 true KR100252766B1 (ko) 2000-04-15

Family

ID=19505211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970017726A KR100252766B1 (ko) 1997-05-08 1997-05-08 고속으로 동작하는 스티키 신호 생성기

Country Status (2)

Country Link
US (1) US6057720A (ko)
KR (1) KR100252766B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257844A (zh) * 2013-04-19 2013-08-21 荣成市鼎通电子信息科技有限公司 无乘法运算的深空通信中准循环矩阵串行乘法器
CN103268211A (zh) * 2013-04-19 2013-08-28 荣成市鼎通电子信息科技有限公司 基于共享存储机制的cmmb中准循环矩阵串行乘法器
CN103268214A (zh) * 2013-04-19 2013-08-28 荣成市鼎通电子信息科技有限公司 基于查找表的深空通信中准循环矩阵高速乘法器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0367328A (ja) * 1989-08-04 1991-03-22 Ricoh Co Ltd 浮動小数点演算装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025257A (en) * 1988-06-10 1991-06-18 General Electric Company Increased performance of digital integrated circuits by processing with multiple-bit-width digits
US5153848A (en) * 1988-06-17 1992-10-06 Bipolar Integrated Technology, Inc. Floating point processor with internal free-running clock
US5627773A (en) * 1995-06-30 1997-05-06 Digital Equipment Corporation Floating point unit data path alignment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0367328A (ja) * 1989-08-04 1991-03-22 Ricoh Co Ltd 浮動小数点演算装置

Also Published As

Publication number Publication date
US6057720A (en) 2000-05-02
KR19980082675A (ko) 1998-12-05

Similar Documents

Publication Publication Date Title
US5508950A (en) Circuit and method for detecting if a sum of two multibit numbers equals a third multibit constant number prior to availability of the sum
JPH02138620A (ja) 数値量を計算する方法および数値データ処理装置
US6199089B1 (en) Floating point arithmetic logic unit rounding using at least one least significant bit
JPH0542011B2 (ko)
US20140358979A1 (en) GENERATING A FAST 3x MULTIPLAND TERM FOR RADIX-8 BOOTH MULTIPLICATION
EP0487814A2 (en) Overflow determination for three-operand alus in a scalable compound instruction set machine
US8370415B2 (en) Overflow detection and clamping with parallel operand processing for fixed-point multipliers
US7428567B2 (en) Arithmetic unit for addition or subtraction with preliminary saturation detection
US7373369B2 (en) Advanced execution of extended floating-point add operations in a narrow dataflow
US6499044B1 (en) Leading zero/one anticipator for floating point
US20020184285A1 (en) Floating point adder
KR100252766B1 (ko) 고속으로 동작하는 스티키 신호 생성기
US5798952A (en) Leading bit anticipator
US5235539A (en) Method and apparatus for generating carry out signals
KR100627993B1 (ko) 3입력 분할 가산기
US5920493A (en) Apparatus and method to determine a most significant bit
US7356553B2 (en) Data processing apparatus and method for determining a processing path to perform a data processing operation on input data elements
JP2018097864A (ja) リーディングゼロ予想
US6665698B1 (en) High speed incrementer/decrementer
US6615228B1 (en) Selection based rounding system and method for floating point operations
US5798958A (en) Zero detect for binary sum
He et al. Multiply-add fused float point unit with on-fly denormalized number processing
US7386580B2 (en) Data processing apparatus and method for computing an absolute difference between first and second data elements
EP0780759A1 (en) Elimination of math overflow flag generation delay in an alu
KR100241071B1 (ko) 합과 합+1을 병렬로 생성하는 가산기

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: 20121210

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20131217

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20141222

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 17