KR100256463B1 - Process and system for adding or subtracting symbols in any base without converting to a common base - Google Patents

Process and system for adding or subtracting symbols in any base without converting to a common base Download PDF

Info

Publication number
KR100256463B1
KR100256463B1 KR1019960046030A KR19960046030A KR100256463B1 KR 100256463 B1 KR100256463 B1 KR 100256463B1 KR 1019960046030 A KR1019960046030 A KR 1019960046030A KR 19960046030 A KR19960046030 A KR 19960046030A KR 100256463 B1 KR100256463 B1 KR 100256463B1
Authority
KR
South Korea
Prior art keywords
base
logic circuit
difference
circuit
desired base
Prior art date
Application number
KR1019960046030A
Other languages
Korean (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 포만 제프리 엘
Application granted granted Critical
Publication of KR100256463B1 publication Critical patent/KR100256463B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/50Adding; Subtracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

완전한 정밀도로 먼저 공통 베이스로 변환할 필요 없이 임의의 베이스에서 임의의 문자의 수를 갖는 임의의 두 개의 심볼의 가산 및/또는 가산을 가능하게 하는 프로세스 및 시스템이 제공된다. 각 심볼의 문자의 양에 관계없이, 실행 속도는 문자에 대해 거의 일정하다. 본 발명의 프로세스 및 시스템은 부동 소수점 표기의 사용을 필요로 하지 않는다. 또한, 본 발명의 프로세스 및 시스템은 표준 수치 알고리즘 또는, 가산 또는 감산 테이블, 또는 지수화를 필요로 하지 않거나 사용하지 않는다.Processes and systems are provided that allow the addition and / or addition of any two symbols with any number of characters in any base without having to first convert to a common base with full precision. Regardless of the amount of characters in each symbol, the execution speed is almost constant for the characters. The process and system of the present invention do not require the use of floating point notation. In addition, the processes and systems of the present invention do not require or use standard numerical algorithms, or addition or subtraction tables, or exponentiation.

Description

임의의 베이스의 심볼을 가산하거나 감산하는 프로세스 및 시스템Processes and systems for adding or subtracting symbols of any base

본 발명은 완전한 정밀도(full precision)로 먼저 공통 베이스(common base)로 먼저 변환할 필요가 없이 임의의 베이스로 임의의 크기를 갖는 심볼을 가산하거나 감산하는 프로세스 및 시스템에 관한 것이다.The present invention relates to a process and system for adding or subtracting symbols of any size to any base without having to first convert to a common base at full precision first.

임의의 베이스를 갖는 수를 가산하거나 감산할 때 많은 문제점들이 발생한다. 수는 계산을 행하기 위해 베이스 2 또는 10과 같은 공통 베이스로 먼저 변환 되어야 한다. 이 변환 프로세스를 행하는 데는 시간이 소모된다. 또한, 수가 커짐에 따라, 연산 결과의 정밀도는 감소된다. 예를 들면, 종래의 프로세스는 전형적으로 결과가 사전설정된 디지트(digits)의 개수를 초과할 때 계산 결과를 부동 소수점(floating point)으로 변환하는 과정을 포함한다. 그러나, 결과를 부동 소수점으로 변환하게 되면 정밀도가 감소되는 결과를 가져온다.Many problems arise when adding or subtracting numbers with any base. The number must first be converted to a common base such as base 2 or 10 to perform the calculation. This conversion process takes time. Also, as the number increases, the precision of the calculation result decreases. For example, conventional processes typically involve converting a calculation result to a floating point when the result exceeds a predetermined number of digits. However, converting the result to floating point results in reduced precision.

따라서, 본 발명의 목적은 먼저 베이스를 공통 베이스로 변환시킬 필요 없이 임의의 베이스를 갖는 임의의 두 수를 가산하거나 감산하는 신규하고 향상된 프로세스 및 시스템을 생성하는 데 있다.Accordingly, it is an object of the present invention to create a new and improved process and system that adds or subtracts any two numbers with any base without first having to convert the base to a common base.

본 발명의 다른 목적은 먼저 베이스를 공통 베이스로 변환시킬 필요없이 임의의 베이스를 갖는 수를 가산하거나 감산하며, 프로세스가 실질적으로 임의의 크기를 갖는 디지트에 대해 정확한 연산 결과를 발생시키는 신규하고 향상된 프로세스 및 시스템을 제공하는 데 있다.Another object of the present invention is a new and improved process that first adds or subtracts a number with any base without having to convert the base to a common base, and the process generates accurate computational results for digits of substantially any size. And to provide a system.

본 발명의 또다른 목적은 미리 공통 베이스롤 변환할 필요가 없으며, 가산 및 감산의 결과를 부동 소수점으로 변환시킬 필요없이 임의의 베이스를 갖는 수를 가산하거나 감산하는 신규하고 향상된 프로세스 및 시스템을 제공하는데 있다.It is a further object of the present invention to provide a new and improved process and system for adding or subtracting numbers with any base without the need to convert the common baseroll beforehand and without converting the result of addition and subtraction to floating point. have.

본 발명의 또다른 목적은 먼저 베이스를 공통 베이스로 변환할 필요가 없으며, 지수화(exponentiation)를 할 필요가 없이 임의의 베이스를 갖는 수를 가산하거나 감산하는 신규하고 향상된 프로세스 및 시스템을 제공하는데 있다.It is a further object of the present invention to provide a novel and improved process and system for adding or subtracting numbers with any base without first needing to convert the base to a common base and without having to exponentiation.

본 발명의 또다른 목적은 데이터의 세트를 인코딩하거나 프로세싱하고, 인코딩된 데이터의 프로세싱후 결과 데이터를 디코딩할 수 있게 하는 것이다.Another object of the invention is to be able to encode or process a set of data and to decode the resulting data after processing of the encoded data.

본 발명의 또다른 목적은 예를 들어, 컴퓨터 언어, 구어용(spoken)언어, 문어용(written) 언어 등과 같은 임의의 언어로 된 데이터를 인코딩하거나 프로세스 하는 것이다.It is another object of the present invention to encode or process data in any language, such as, for example, a computer language, a spoken language, a written language, or the like.

본 발명의 그밖의 다른 목적 및 장점은 본 명세서로부터 부분적으로 명백하고 명확해질 것이다.Other objects and advantages of the invention will be in part apparent and obvious from the description.

제1a도-제1e도는 본 발명의 프로세스의 단계를 도시한 오퍼레이션 흐름도.1A-1E are operational flow diagrams illustrating the steps of the process of the present invention.

제2도는 본 발명의 프로세스를 실행하기 위한 시스템의 기능블럭도.2 is a functional block diagram of a system for executing a process of the present invention.

제3도는 제2도에 도시된 시스템의 버스 동작, 데이터 처리 및 데이터 제어 회로의 기능블럭도.3 is a functional block diagram of a bus operation, data processing and data control circuit of the system shown in FIG.

제4도는 제2도의 시스템의 베이스 변환 회로의 기능블럭도.4 is a functional block diagram of a base conversion circuit of the system of FIG.

제5도는 제2도에 도시된 시스템의 디지털 가산기 회로의 기능블럭도.5 is a functional block diagram of a digital adder circuit of the system shown in FIG.

제6도는 제2도의 시스템의 디지털 감산 회로의 기능블럭도.6 is a functional block diagram of a digital subtraction circuit of the system of FIG.

제7도는 제2도의 시스템의 시퀸스 제어기 회로의 블록도.7 is a block diagram of a sequence controller circuit of the system of FIG.

제8도는 제2도의 시스템에서 사용될 수 있는 디지털 가산기 및 감산기 서브시스템의 바람직한 실시예의 기능블럭도.8 is a functional block diagram of a preferred embodiment of a digital adder and subtractor subsystem that may be used in the system of FIG.

제9도는 제8도의 서브시스템의 디지털 가산기 회로의 블록도.9 is a block diagram of a digital adder circuit of the subsystem of FIG.

제10도는 제8도의 서브시스템의 디지털 감산기 회로의 블록도.10 is a block diagram of a digital subtractor circuit of the subsystem of FIG.

제11도는 제9도의 디지털 가산기 회로 및 제10도에 도시된 디지털 감산기 회로의 조합을 포함하는 회로의 블록도.FIG. 11 is a block diagram of a circuit including a combination of the digital adder circuit of FIG. 9 and the digital subtractor circuit shown in FIG.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

602 : 메모리 604 : 가산기 및 변환회로602: memory 604: adder and conversion circuit

606 : 시퀸스 제어기 608 : 참조 테이블606: sequence controller 608: reference table

612 : 어드레스 버스 614 : 데이터 버스612: address bus 614: data bus

본 기술 분야에 통상의 지식으로 가진 자에게 명백한 바와 같이, 전술한 목적 및 장점과 그 밖의 다른 목적 및 장점은 제1관점에서, 먼저 공통 베이스로 변환 할 필요 없이 완전한 정밀도로 임의의 베이스에서 임의의 개수의 문자를 갖는 특정 심볼 체계에 관련된 임의의 두 개의 심볼의 가산 및/또는 감산을 실행하는 프로세스 및 시스템이 본 발명에서 달성된다. 각 심볼의 문자의 양에 관계없이, 실행 속도는 각각의 문자에 대해 거의 일정하게 유지된다. 본 발명의 프로세스는 지정된 문자의 베이스로 변환할 필요가 없으며, 공통 베이스로 변환할 필요도 없다. 본 발명의 프로세스는 또한 부동 소수점 표기의 사용을 필요로 하지 않는다. 또한, 본 발명의 프로세스는 표준 수치 알고리즘, 가산 또는 감산 테이블, 또는 지수화를 필요로 하지 않거나 사용하지 않는다.As will be apparent to one of ordinary skill in the art, the foregoing and other objects and advantages are, in the first aspect, arbitrary on any base with full precision without having to first convert to a common base. Processes and systems for performing addition and / or subtraction of any two symbols related to a particular symbol system having a number of characters are achieved in the present invention. Regardless of the amount of characters in each symbol, the execution speed remains nearly constant for each character. The process of the present invention does not need to convert to a base of designated characters, nor to a common base. The process of the present invention also does not require the use of floating point notation. In addition, the process of the present invention does not require or use standard numerical algorithms, addition or subtraction tables, or exponentiation.

본 발명의 프로세스 및 시스템은 사전설정된 부동 베이스를 사용하여 문자의 가산 또는 감산을 수행한다. 본 명세서에서 사용된 부동 베이스는 먼저 공통 베이스로 변환하지 않고 임의의 베이스를 사용하는 것을 의미한다. 바람직한 실시예에서, 프로세스는 2 이상 36 이하의 부동 베이스를 사용한다. 그러나, 본 발명의 프로세스는 36보다 큰 부동 베이스를 사용하도록 변경될 수 있다. 프로세스는 또한 십진 소수점을 갖는 베이스를 사용하도록 변경될 수 있다. 바람직한 실시예에서, 전술한 프로세스를 실행하는데 사용된 본 발명의 시스템은 2 이상 127 이하의 부동 베이스를 사용한다.The process and system of the present invention performs addition or subtraction of characters using a predetermined floating base. Floating base as used herein means using any base without first converting to a common base. In a preferred embodiment, the process uses at least 2 and at most 36 floating bases. However, the process of the present invention can be modified to use a floating base greater than 36. The process can also be modified to use a base with a decimal point. In a preferred embodiment, the system of the present invention used to carry out the process described above uses more than 2 and less than 127 floating bases.

가산되거나 감산될 문자는 숫자, 알파벳, 부호, 심볼일 수 있으며, 임의의 언어 심볼을 또한 포함할 수 있다. 이는 임의의 컴퓨터 언어이거나 임의의 구어용 또는 문어용 언어일 수 있다. 각 심볼은 특정 심볼 체계와 연관되어 있다. 예를 들면, 베이스 10인 수 체계에서 두 개의 수가 더해질 경우, 각 수는 심볼이고, 각 수의 각 디지트는 문자이며, 베이스 10인 수 체계는 심볼 체계가 된다. 프로세스는 작동으로 스트링(string)을 선택하며, 그 요구에 따라 동작한다. 또한, 스트링은 임의의 길이 및 임의의 문자일 수 있다. 본 발명의 프로세스 및 시스템은 특정 식별기를 지정하고, 문서를 부호화하는 데 있어서 각 블록의 부분이 상이한 베이스를 갖는 파트 수를 지정하며, 전자 또는 컴퓨터 회로를 설계하므로써 전자 우편을 전송하거나 수신하는데 사용될 수 있다.The characters to be added or subtracted may be numbers, alphabets, signs, symbols, and may also include any language symbols. It may be any computer language or any spoken or written language. Each symbol is associated with a specific symbol system. For example, if two numbers are added in the base ten number system, each number is a symbol, each digit in each number is a letter, and the base ten number system is a symbol system. The process selects a string for operation, and acts on that request. Also, the string can be any length and any character. The process and system of the present invention can be used to send or receive e-mail by designating electronic or computer circuitry, by designating specific identifiers, by designating electronic or computer circuits, in which parts of each block have different bases in encoding a document. have.

관련 관점에서, 본 발명은, 베이스를 갖는 수 체계에서 적어도 두 개의 수를 정의하는 데이터를 수신하는 제1로직 회로 - 각 수는 적어도 하나의 디지트를 가지고, 데이터는 원하는 베이스를 또한 정의하며, 로직 회로는 제1중간 합을 생성하기 위해 수의 디지트를 가산하고, 로직 회로는 제1중간 합을 베이스와 비교하고, 로직 회로는 신호가 제1상태를 가질 때 중간 합이 베이스보다 크거나 같을 경우 차를 생성하기 위해 제1중간 합으로부터 원하는 베이스를 감산하며, 제1로직 회로는 중간 합이 원하는 베이스보다 크거나 같을 경우 차를 출력하거나, 중간 합이 원하는 베이스보다 작을 경우 중간 합을 출력한다-,In a related aspect, the present invention relates to a first logic circuit for receiving data defining at least two numbers in a number system having a base, each number having at least one digit, the data also defining a desired base, The circuit adds a number of digits to produce a first intermediate sum, the logic circuit compares the first intermediate sum with the base, and the logic circuitry if the intermediate sum is greater than or equal to the base when the signal has a first state. Subtract the desired base from the first intermediate sum to produce the difference, and the first logic circuit outputs the difference if the intermediate sum is greater than or equal to the desired base, or outputs the intermediate sum if the intermediate sum is less than the desired base − ,

제1중간 합이 원하는 베이스보다 크거나 같을 경우 연속하는 디지트 가산 오퍼레이션에 대해 제1로직 회로로 입력하기 위한 캐리 신호를 생성하는 제2로직회로 - 제2로직회로는 제1중간 합이 원하는 베이스보다 작을 경우 노 캐리(no carry) 신호를 생성한다 -를 포함하는 데이터 시스템으로 지시된다.A second logic circuit that generates a carry signal for input to the first logic circuit for successive digit addition operations if the first intermediate sum is greater than or equal to the desired base. If small, it generates a no carry signal.

다른 관점에서, 본 발명은,In another aspect, the present invention,

베이스를 갖는 수 체계에서 적어도 두 개의 수를 정의하는 데이터를 수신하기 위한 제1로직 회로 - 각 수는 적어도 한의 디지트를 가지고, 데이터는 원하는 베이스를 또한 정의하고, 로직 회로는 중간 합을 생성하기 위해 수의 디지트를 가산하고, 로직 회로는 제1중간 합을 베이스와 비교하고, 로직 회로는 신호가 제1상태를 가질 때 중간 합이 베이스보다 크거나 같을 경우 차를 생성하기 위해 제1중간 합으로부터 베이스를 감산하며, 제1로직 회로는 중간 합이 원하는 베이스보다 크거나 같을 경우 차를 출력하며 중간 합이 원하는 베이스보다 작을 경우 중간 합을 출력한다-,A first logic circuit for receiving data defining at least two numbers in a number system having a base, each number having at least one digit, the data also defining a desired base, and the logic circuitry to generate an intermediate sum Adding a number of digits, the logic circuit compares the first intermediate sum with the base, and the logic circuit derives from the first intermediate sum to produce a difference if the intermediate sum is greater than or equal to the base when the signal has a first state. Subtracts the base, and the first logic circuit outputs the difference if the intermediate sum is greater than or equal to the desired base and outputs the intermediate sum if the intermediate sum is less than the desired base.

중간 합이 원하는 베이스보다 크거나 같을 경우 연속적인 디지트 가산 오피레이션을 위해 제1로직 회로로 입력하기 위한 캐리 신호를 생성하기 위한 제2로직회로 - 제2로직 회로는 중간 합이 원하는 베이스보다 작을 경우 노 캐리 신호는 생성한다 -를 포함하는 데이터 시스템으로 지시된다.A second logic circuit for generating a carry signal for input into the first logic circuit for continuous digit addition operations when the intermediate sum is greater than or equal to the desired base, where the second logic circuit is less than the desired base. The no carry signal is generated-which is directed to the data system.

또다른 관점에서, 본 발명은, 베이스를 갖는 수 체계에서 적어도 두 개의 수를 정의하는 데이터를 수신하기 위한 입력 회로 - 각 수는 적어도 하나의 디지트를 가지고, 데이터를 오퍼레이션 정보 및 원하는 베이스를 또한 정의하며, 오퍼레이션 정보는 가산 또는 감산 오퍼레이션이 수행되어야 할 지를 결정한다-,In another aspect, the invention provides an input circuit for receiving data defining at least two numbers in a number system having a base, each number having at least one digit, the data also defining operation information and a desired base. The operation information determines whether the addition or subtraction operation should be performed.

오퍼레이션이 감산일 경우 제1중간 합을 생성하기 위해 수 중 하나의 디지트와 원하는 베이스를 가산하기 위한 제1로직 회로 - 제1로직 회로는 오퍼레이션이 가산일 경우 제2중간 합을 생성하기 위해 대응하는 수의 디지트를 가산하고, 제1 로직 회로는 오퍼레이션이 감산일 경우 제1차를 생성하기 위해 제1중간 합으로부터 다른 수의 디지트를 감산하며, 제1로직 회로는 제2중간 합과 원하는 베이스를 비교하기 위한 비교기 회로를 포함하며, 제2중간 합이 원하는 베이스보다 크거나 같을 경우 제1상태를 가지며 제2중간 합이 원하는 베이스보다 작을 경우 제2상태를 가지는 제어 신호를 출력한다-,A first logic circuit for adding a digit of one number and the desired base to produce a first intermediate sum if the operation is subtracted-the first logic circuit corresponds to generating a second intermediate sum if the operation is addition. Add a number of digits, the first logic circuit subtracts another number of digits from the first intermediate sum to produce a first order if the operation is subtracted, and the first logic circuit subtracts the second intermediate sum and the desired base. A comparator circuit for comparing, and outputs a control signal having a first state if the second intermediate sum is greater than or equal to the desired base and a second state if the second intermediate sum is less than the desired base;

제1로직 회로에 접속된 제2로직 회로 - 제2로직 회로는 오퍼레이션이 가산이며 제어 신호가 제1상태를 가질 경우 제2차를 생성하기 위해 제2중간 합으로부터 원하는 베이스를 감산하고, 제1로직 회로의 비교기 회로는 중간 차와 원하는 베이스를 비교하고, 비교기 회로 제어 신호는 중간 차가 원하는 베이스보다 크거나 같은 경우 제1상태를 가지며 중간 차가 원하는 베이스보다 작은 경우 제2상태를 가지며, 제2로직 회로는 오퍼레이션이 감산이며 제어 신호가 제1상태를 가질 경우 중간 차로부터 원하는 베이스를 감산한다-,Second logic circuit connected to the first logic circuit-the second logic circuit subtracts the desired base from the second intermediate sum to generate a second order when the operation is additive and the control signal has a first state, The comparator circuit of the logic circuit compares the intermediate difference with the desired base, the comparator circuit control signal has a first state if the intermediate difference is greater than or equal to the desired base, and has a second state if the intermediate difference is less than the desired base, and the second logic The circuit subtracts the desired base from the intermediate difference when the operation is subtracted and the control signal has the first state.

연속적인 디지트 가산 또는 감산 오퍼레이션에 사용하기 위해 제1로직 회로로 입력하기 위한 캐리/바로우 신호를 생성시키는 제3로직 회로 - 캐리/바로우 신호는 오퍼레이션이 가산이며 제2중간 합이 원하는 베이스보다 크거나 같을 경우, 또는 오퍼레이션이 감산이며 중간 차가 원하는 베이스보다 작을 경우 제1상태를 가지고, 캐리/바로우 신호는 오퍼레이션 가산이며 제2중간 합이 원하는 베이스보다 작을 경우 또는 오퍼레이션이 감산이며 중간 차가 원하는 베이스보다 크거나 같을 경우 제2상태를 갖는다 -를 포함하는 데이터 시스템으로 지시된다.Third logic circuit that generates a carry / barrow signal for input to the first logic circuit for use in successive digit add or subtract operations-the carry / barrow signal is an add operation and the second intermediate sum is greater than or equal to the desired base. If the same, or if the operation is subtracted and the intermediate difference is less than the desired base, then the carry / barrow signal is the operation addition and the second intermediate sum is less than the desired base or the operation is subtracted and the intermediate difference is greater than the desired base. Is equal to or has a second state.

관련 관점에서, 본 발명은, (a) 데이터를 저장 매치에 입력하는 단계 - 데이터는 베이스 및 원하는 베이스를 갖는 수 체계에서 적어도 두 개의 수를 정의하며, 각 수는 적어도 하나의 디지트를 갖는다-, (b) 제1중간 합을 생성하기 위해 가산기 회로에서 수의 디지트를 가산하는 단계, (c) 제1중간 합이 원하는 베이스보다 크거나 같은지를 비교기 회로로 판단한는 단계, (d) 단계 (c)에서 제1중간 합이 원하는 베이스보다 크거나 같은 것으로 판단된 경우, 차를 생성하기 위해 감산기 회로에서 제1중간 합으로부터 원하는 베이스를 감산하는 단계, (e) 단계 (c)에서 제1중간 합이 원하는 베이스보다 크거나 같은 것으로 판단된 경우 차를 저장 매채에 출력하거나, 또는 단계 (c)에서 제1중간 합이 원하는 베이스보다 작은 것으로 판단된 경우 제1중간 합을 저장 매체 출력하는 단계, (f) 단계 (c)에서 제1중간 합이 원하는 베이스보다 크거나 같은 것으로 판단된 경우 다음 디지트 가산 오퍼레이션을 위한 가산기 회로로 입력하기 위한 비교기와 접속된 래치로 캐리 신호를 생성하는 단계를 포함하는 데이터상의 오퍼레이션을 수행하기 위한 프로세스로 지시된다.In a related aspect, the present invention provides a method comprising the steps of: (a) entering data into a storage match, the data defining at least two numbers in a number system with a base and a desired base, each number having at least one digit, (b) adding a number of digits in the adder circuit to produce a first intermediate sum, (c) determining by the comparator circuit whether the first intermediate sum is greater than or equal to a desired base, (d) step (c) If it is determined that the first intermediate sum is greater than or equal to the desired base, subtracting the desired base from the first intermediate sum in the subtractor circuit to produce a difference, (e) in step (c) the first intermediate sum is Output the difference to the storage medium if it is determined to be greater than or equal to the desired base, or output the storage medium to the first medium sum if it is determined in step (c) that the first intermediate sum is smaller than the desired base. Generating a carry signal with a latch connected to a comparator for inputting into the adder circuit for the next digit addition operation if it is determined in step (c) that the first intermediate sum is greater than or equal to the desired base. Directed to a process for performing an operation on data comprising a step.

또 다른 관점에서, 본 발명은, (a) 데이터를 저장 매치에 입력하는 단계 - 데이터는 베이스를 갖는 수 체계에서 수를 정의하고, 각 수는 적어도 하나의 디지트 및 값을 가지며, 데이터는 원하는 베이스를 또한 정의한다-, (b) 가산기 회로에서 제1중간 합을 생성하기 위해 원하는 베이스를 수 중 한의 디지트와 가산하는 단계, (c) 감산기 회로에서 중간 차를 생성하기 위해 제1중간 합으로부터 다른 수의 디지트를 감산하는 단계, (d) 중간 차가 원하는 베이스보다 크거나 같을 경우 비교기 회로로 판단하는 단계, (e) 단계 (c)에서 중간 차가 원하는 베이스보다 크거나 같을 것으로 판단된 경우 최종 차를 생성하기 위해 감산기 회로내에서 중간 차로부터 원하는 베이스를 감산하는 단계, (f) 단계 (c)에서 중간 차가 원하는 베이스보다 크거나 같은 것으로 판단된 경우 최종 차를 저장 매체에 출력하거나, 또는 단계(c)에서 중간 차가 원하는 베이스보다 작은 것으로 판단된 경우 중간 차를 저장 매체에 출력하는 단계, (g) 단계 (c)에서 중간 차가 원하는 베이스보다 크거나 같은 것으로 판단된 경우 다음 디지트 감산 오퍼레이션을 위한 감산기 회로로 입력하기 위해 비교기에 접속된 래치로 바로우 신호를 생성하는 단계를 포함하는 데이터상의 오퍼레이션을 수행하기 위한 프로세스로 지시된다.In another aspect, the present invention provides a method comprising the steps of: (a) inputting data into a storage match, where the data defines a number in a number system having a base, each number having at least one digit and a value, and the data having a desired base Also defines-(b) adding the desired base with one digit of the number to produce the first intermediate sum in the adder circuit, and (c) the other from the first intermediate sum to generate the intermediate difference in the subtractor circuit. Subtracting the number of digits, (d) determining the comparator circuit if the intermediate difference is greater than or equal to the desired base, and (e) determining the final difference if the intermediate difference is greater than or equal to the desired base in step (c). Subtracting the desired base from the intermediate difference in the subtractor circuit to produce, (f) if the intermediate difference is determined to be greater than or equal to the desired base in step (c). Outputting the final difference to the storage medium, or outputting the intermediate difference to the storage medium if it is determined in step (c) that the intermediate difference is smaller than the desired base, (g) outputting the intermediate difference to the storage medium in step (c). Or if it is determined to be the same, a process for performing an operation on data comprising generating a right signal with a latch connected to the comparator for input to a subtractor circuit for the next digit subtraction operation.

또다른 관점에서, 본 발명은, (a) 데이터를 저장 매체에 입력하는 단계 - 데이터는 베이스를 갖는 수 체계에서 적어도 두 개의 수를 정의하고, 각 수는 적어도 하나의 디지트 및 값을 가지고, 데이터는 오퍼레이션 정보 및 원하는 베이스를 또한 정의하며, 오퍼레이션 정보는 가산 또는 감산 오퍼레이션이 수행될 지를 결정한다-, (b) 가산기 회로에서, 오퍼레이션이 감산일 경우 제1중간 합을 생성하기 위해 원하는 베이스를 수 중 하나의 디지트에 가산하는 단계, (c) 가산기 회로에서, 오퍼레이션이 가산일 경우 제2중간 합을 생성하기 위해 대응하는 수의 디지트를 가산하는 단계, (d) 감산기 회로에서, 오퍼레이션이 감산일 경우 제1차를 생성하기 위해 제1중간 합으로부터 다른 수의 디지트를 감산하는 단계, (e) 오퍼레이션이 가산일 경우 제2중간 합이 원하는 베이스보다 크거나 같은지를 비교기 회로로 판단하는 단계, (f) 감산기 회로에서, 오퍼레이션이 가산이며 단계 (e)에서 제2중간 합이 원하는 베이스보다 큰 것으로 판단된 경우 제2차를 생성하기 위해 제2중간 합으로부터 원하는 베이스를 감산하는 단계, (g) 오퍼레이션이 감산일 경우 제1차가 원하는 베이스보다 크거나 같은 지를 비교기로 판단하는 단계, (h) 감산기 회로에서, 오퍼레이션 감산이며 단계 (g)에서 중간 차가 원하는 베이스보다 크거나 같은 것으로 판단된 경우 중간 차로부터 원하는 베이스를 감산하는 단계, (i) 연속적인 디지트 가산 또는 감산 오퍼레이션 각각에 대한 단계 (c) 및 (d)에서 사용하기 위한 캐리/바로우 신호를 생성하는 단계 - 캐리/바로우 신호는 오퍼레이션 가산이며 단계 (e)에서 제2중간 합이 원하는 베이스보다 크거나 같은 것으로 판단되거나, 또는 오퍼레이션이 감산이며 단계 (g)에서 중간 차가 원하는 베이스보다 작은 것으로 판단될 경우 제1상태를 가지며, 캐리/바로우 신호는 오퍼레이션이 가산이며 단계 (e)에서 제2중간 합이 원하는 베이스보다 작은 것으로 판단되거나, 또는 오퍼레이션이 감산이며 단계 (g)에서 중간 차가 원하는 베이스보다 크거나 같은 것으로 판단될 경우 제2상태를 갖는다 -를 포함하는 데이터상에서 오퍼레이션을 수행하기 위한 프로세스로 지시된다.In another aspect, the present invention provides a method comprising the steps of: (a) inputting data into a storage medium, the data defining at least two numbers in a number system having a base, each number having at least one digit and a value; Also defines the operation information and the desired base, where the operation information determines whether the addition or subtraction operation is to be performed, (b) in the adder circuit, the number of bases desired to generate the first intermediate sum if the operation is subtracting. Adding to one of the digits; (c) in the adder circuit, if the operation is an add, adding a corresponding number of digits to produce a second intermediate sum; and (d) in the subtractor circuit, the operation is subtracted. Subtracting another number of digits from the first intermediate sum to produce a first order, if (e) the second intermediate sum is desired if the operation is additive. Determining by the comparator circuit whether it is greater than or equal to the base, and (f) in the subtractor circuit, if the operation is added and it is determined in step (e) that the second intermediate sum is greater than the desired base, the first step is to generate a second order. Subtracting the desired base from the double sum, (g) if the operation is subtracting, determining with a comparator whether the first order is greater than or equal to the desired base, (h) in the subtractor circuit, operation subtracting and in step (g) Subtracting the desired base from the intermediate difference if it is determined that the intermediate difference is greater than or equal to the desired base, (i) carry / barrow for use in steps (c) and (d) for each successive digit addition or subtraction operation. Generating a Signal-The carry / barrow signal is an operation addition and in step (e) the second intermediate sum is greater than or equal to the desired base. If it is determined that the operation is subtracted and the intermediate difference is smaller than the desired base in step (g), the carry / barrow signal has the first state and the carry / barrow signal is the operation added and the second intermediate sum is desired in step (e). Directed to a process for performing an operation on data comprising:-is determined to be smaller than the base, or the operation is subtracted and the intermediate difference is greater than or equal to the desired base in step (g).

본 발명의 바람직한 실시예를 기술함에 있어서, 동일 부호는 본 발명의 동일 특성을 언급하는 제1도-제11도을 참조로 하여 기술될 것이다.In describing preferred embodiments of the present invention, the same reference numerals will be described with reference to FIGS. 1 to 11 which refer to the same features of the present invention.

본 발명의 프로세스에 관한 다음의 설명은 2 이상 36 이하의 베이스 수로 본 발명의 프로세스를 실행하는 것에 관한 것이다. 그러나, 본 발명의 프로세스는 전술한 범위내에 있지 않은 베이스 수에도 적용될 수 있다.The following description of the process of the present invention relates to implementing the process of the present invention with a base number of 2 or more and 36 or less. However, the process of the present invention can also be applied to base numbers that are not within the aforementioned range.

제1a도 내지 제1e도는 본 발명의 프로세스 단계를 도시하는 오퍼레이션 흐름도이다. 제1a도를 참조하면, 프로세스는 단계(100)에서 개시되며, 여기에서 이하의 4개의 인자(argument) 즉, (i) 수 베이스("BASER")와, (ii) 제1숫자("NNUM")와, (iii) 플러스 또는 마이너스 부호("SIGN"), 및 (iv) 제2숫자("NNUM")가 파싱(par se)된다. 그 후, 인자에 대해 일련의 체크가 행해진다. 단계(101)에서는 베이스가 2 이상 36 이하에 해당하는지의 여부가 체크된다. 베이스가 이 범위 밖에 있을 경우, 에러 플래그(flag)가 세트되며 프로세스는 종료된다.1A-1E are operational flow diagrams illustrating the process steps of the present invention. Referring to FIG. 1A, the process begins at step 100, where the following four arguments (i) the number base ("BASER") and (ii) the first number ("NNUM"). "), (Iii) plus or minus sign (" SIGN "), and (iv) second number (" NNUM ") are parsed. Thereafter, a series of checks are performed on the arguments. In step 101, it is checked whether the base corresponds to 2 or more and 36 or less. If the base is outside this range, an error flag is set and the process ends.

단계(102)에서는 "C" 어레이로 지정된 사전정의된 어레이로 심볼 세트를 로드한다. 심볼은 수, 문자, 부호 등일 수 있으며, 전술한 바와 같이 임의의 언어로 이루어질 수 있다. 단계(103)에서는 "B" 어레이로 심볼 세트의 일부를 로드한다. "B" 어레이로 판독되는 "C" 어레이의 일부는 "C" 어레이의 "0" 인덱스(index)로부터 "C" 어레이의 BASE-1 인덱스 까지이다. 단계(104)에서는 "A" 어레이를 로드한다. 이 "A" 어레이는 "B" 어레이로부터 로드된다. "B" 어레이의 "N 번째" 인덱스의 값은 "A" 어레이의 "N 번째" 인덱스에 대한 인덱스로서 로드된다. "B" 어레이의 "N 번째" 인덱스는 "A" 어레이의 "N 번째" 인덱스의 값으로서 로드된다. 따라서, "A" 어레이에는 "0"에서 BASE-1 까지의 "C" 어레이 요소의 값과 동일한 "A" 어레이의 인덱스를 갖는 "C" 어레이로부터의 데이터가 로드된다.Step 102 loads the symbol set into a predefined array designated as a "C" array. The symbol may be a number, a letter, a sign, or the like, and may be formed in any language as described above. Step 103 loads a portion of the symbol set into an "B" array. The portion of the "C" array that is read into the "B" array is from the "0" index of the "C" array to the BASE-1 index of the "C" array. Step 104 loads an "A" array. This "A" array is loaded from the "B" array. The value of the "Nth" index of the "B" array is loaded as the index for the "Nth" index of the "A" array. The "Nth" index of the "B" array is loaded as the value of the "Nth" index of the "A" array. Thus, the "A" array is loaded with data from the "C" array with the index of the "A" array equal to the value of the "C" array element from "0" to BASE-1.

단계(105)에서는 가산 또는 감산 오퍼레이션을 위해 수를 준비한다. 특히, 단계(105)에서는 가산되거나 감산될 입력(incoming) 숫자의 길이를 결정한다. 제1숫자 NNUM의 길이는 "M"으로 지정된다. 제2숫자 NNUM1의 길이는 M1으로 지정된다. 또한 단계(105)에서는 "CHGSIGN"으로 지정된 변수를 초기에 " "(공백)으로 세트시킨다.In step 105, numbers are prepared for addition or subtraction operations. In particular, step 105 determines the length of the incoming number to be added or subtracted. The length of the first number NNUM is designated as "M". The length of the second number NNUM1 is designated as M1. In step 105, the variable designated by "CHGSIGN" is initially set to "" (blank).

그 후, 프로세스는 단계(200)로 이동된다. 단계(200)에서는 "SIGN"이 가산 연산을 가리키는 "+"인자를 판단한다. "SIGN"이 "+"일 경우, 프로세스는 제1b도에서 "ADDSIGN" 단계로 일컬어지는 단계(201)로 이동한다.The process then moves to step 200. In step 200, a "+" factor in which "SIGN" indicates an addition operation is determined. If "SIGN" is "+", the process moves to step 201, which is referred to as the "ADDSIGN" step in FIG.

단계(201)에서, 제 2 또는 "더 짧을 수"는 더 많은 디지트 개수("더 긴 수")를 갖는 수와 동일한 길이가 되도록 제로(zeros)로 왼쪽 자리맞춤된다(left-justified). 단계(201)에서는 가장 많은 개수의 디지트를 갖는 입력 숫자의 길이 및 값으로 변수 N 및 NUM을 세트시킨다. 단계(201)에서는 또한 NUM으로 지정된 입력 숫자보다 더 적은 개수의 디지트를 갖는 나머지 입력 숫자의 길이 및 값으로 변수 N1 및 NUM1을 세트시킨다. 두 입력 숫자가 동일한 갯수의 디지트를 가질 경우, 첫 번째 입력 숫자의 길이 및 값은 각각 N 및 NUM으로 지정되고, 두 번째 입력 숫자의 길이 및 값은 N1 및 NUM1으로 각각 지정되며, 두 번째 입력 숫자에는 아무 가산 수도 가산되지 않는다. 단계(201)후, 프로세스는 이하에서 기술되는 단계(205)로 이동된다.In step 201, the second or "shorter number" is left-justified to zeros to be the same length as the number having more digits ("longer number"). Step 201 sets variables N and NUM to the length and value of the input digit having the largest number of digits. Step 201 also sets variables N1 and NUM1 to the length and value of the remaining input digits having fewer digits than the input digits designated NUM. If two input numbers have the same number of digits, the length and value of the first input number are specified as N and NUM, respectively, and the length and value of the second input number as N1 and NUM1, respectively, and the second input number. No additions will be added to this. After step 201, the process moves to step 205, described below.

단계(200)에서, "SIGN"이 "+"RK 아닌 경우, 프로세스는 단계(202)로 이동한다. 단계(202)에서는 "SIGN"이 감산 연산을 지시하는 "-"인지를 판단한다. 단계(202)에 "SIGN"이 "-"가 아니라고 판단될 경우, 프로세스는 이하에 기술되는 단계(203)으로 이동된다. 단계(202)에서, "SIGN"이 "-"가 아니라고 판단될 경우, 프로세스는 에러 플래그를 세트시키는 단계(204)로 이동된다. 그 후, 프로세스는 종료된다.In step 200, if "SIGN" is not "+" RK, the process moves to step 202. In step 202, it is determined whether "SIGN" is "-" indicating a subtraction operation. If it is determined in step 202 that "SIGN" is not "-", the process moves to step 203 described below. In step 202, if it is determined that "SIGN" is not "-", the process moves to step 204 for setting an error flag. The process then ends.

제1b도에서 "MINUSSING"으로 지정되는 단계(203)에서, 변수 N 및 NUM은 가장 많은 개수의 디지트를 갖는 입력 숫자의 길이 및 값으로 각각 지정된다. 단계(203)에서는 또한 NUM으로 지정된 수보다 더 적은 개수의 디지트를 갖는 나머지 입력 숫자의 길이 및 값을 각각 변수 N1 및 NYM1으로 세트시킨다. 두 번째 또는 "더 짧은 수"는 더 많은 개수의 디지트("더 긴 수")를 갖는 수와 길이가 동일하도록 만들기 위해 제로로 왼쪽 자리맞춤된다. 두 입력 숫자가 동일한 디지트 수를 포함할 경우, 가장 높은 값을 갖는 수는 NUM으로 지정되며, 낮은 수는 NUM1으로 지정된다. 두 수가 동일한 개수의 디지트를 가질 때, 부가적인 제로는 필요하지 않다. 숫자의 순서가 바뀌면, 즉 NUM이 낮은 수로 세트되고 NUM1이 높은 값의 수로 세트되면, "CHGSING"은 "-"으로 세트된다.In step 203, designated as "MINUSSING" in FIG. 1B, the variables N and NUM are each assigned the length and value of the input digit having the largest number of digits. Step 203 also sets the length and value of the remaining input digits with fewer digits than the number specified by NUM to variables N1 and NYM1, respectively. The second or "shorter number" is left justified to zero to make the length the same as the number with the larger number of digits ("longer number"). If two input digits contain the same number of digits, the number with the highest value is designated as NUM and the lower number as NUM1. When both numbers have the same number of digits, no additional zero is needed. If the order of the numbers is reversed, that is, NUM is set to a low number and NUM1 is set to a high value number, "CHGSING" is set to "-".

단계(201) 및 단계(203)후, 프로세스는 제1b도에서 "CHECK1"으로 일컬어지는 단계(205)로 이동한다. 단계(205)에서, 제1숫자의 개별적인 디지트는 NUM으로 지정되며, "D" 어레이로 로드된다. 디지트는 왼쪽에서 오른쪽으로 "D" 어레이로 로드되다. 그 후, 단계(205)에서는 "D" 어레이의 각 요소의 값을 취하고, 이들 값을 "A" 어레이의 인덱스로 사용하므로써 디지트가 정의된 심볼 베이스 내에 있는지를 체크 또는 확인한다. 그 후, 단계(205)에서는 "A" 어레이의 각각 인덱스된 위치에서의 값이 존재하는 지를 판단한다. "A" 어레이에서의 값이 존재하지 않을 경우, 에러 플러그가 세트되며, 프로세스는 종료된다.After step 201 and step 203, the process moves to step 205, referred to as " CHECK1 " in FIG. In step 205, the individual digits of the first number are designated NUM and loaded into the " D " array. Digits are loaded from left to right into the "D" array. Step 205 then takes the values of each element of the " D " array and checks or verifies whether the digits are within the defined symbol base by using these values as indexes of the " A " array. Then, in step 205, it is determined whether there is a value at each indexed position of the " A " array. If there is no value in the "A" array, an error plug is set and the process ends.

단계(205)후, 프로세스는 단계(206)로 이동된다. 단계(206)에서, NUM1으로 지정된 제2숫자의 개별 디지트는 "E" 어레이로 로드된다. 디지트는 왼쪽에서 오른쪽으로 "E" 어레이로 로드된다. 그 후, 단계(205)에서는 "E" 어레이의 각 요소의 값을 취하고, 이들 값을 "A" 어레이의 인덱스로 사용하므로써 디지트가 정의된 심볼 베이스내에 있는지를 체크 또는 확인한다. 그 후, 단계(206)에서 "A" 어레이의 인덱스된 각각의 위치에서 값이 존재하는지를 판단한다. "A" 어레이에서의 값이 존재하지 않을 경우, 에러 플래그가 세트되며, 프로세스는 종료된다.After step 205, the process moves to step 206. In step 206, the individual digits of the second number designated NUM1 are loaded into the "E" array. Digits are loaded into the "E" array from left to right. Then, step 205 takes the values of each element of the "E" array and uses these values as the index of the "A" array to check or confirm whether the digits are within the defined symbol base. Then, in step 206, it is determined whether there is a value at each indexed position of the " A " array. If there is no value in the "A" array, an error flag is set and the process ends.

그 후, 단계(207)에서는 "SIGN"이 "+"인지가 판단된다. "SIGN"이 "+"라고 판단된 경우, 프로세스는 제1c도에 도시된 바와 같이 가산 루틴으로 이동하여 단계(300)를 개시한다. 단계(207)에서 "SIGN"이 "+"가 아닌 것으로 판단된 경우, 프로세스는 단계(208)를 이동된다. 단계(208)에서는 제1d도에 도시된 단계(400)에서 시작하는 감산 루틴을 개시한다.Then, in step 207, it is determined whether "SIGN" is "+". If it is determined that "SIGN" is "+", the process moves to the addition routine as shown in FIG. 1C and starts step 300. If in step 207 it is determined that "SIGN" is not "+", the process moves to step 208. Step 208 initiates a subtraction routine beginning at step 400 shown in FIG. 1D.

단P(300)은 가산 루틴의 처 번째 단계이다. 제1c도의 흐름도의 단계(300-313)로 도시되고, 이하의 예로 기술되는 가산 루틴은 마지막 인덱스로부터 첫 번째 인덱스까지 동시에 "D" 및 "E" 어레이를 통해 연속적으로 반복 또는 순환되도록 한다.However, P 300 is the first step of the addition routine. The addition routine shown in steps 300-313 of the flow chart of FIG. 1C, described below by way of example, allows for continuous iteration or cycling through the "D" and "E" arrays simultaneously from the last index to the first index.

가산 루틴은 제1d도의 흐름도에 도시되고, 이하의 예에서 기술되는 단계(400-413)에 의해 설명된다. 가장 큰 값의 수가 식별되며, 제2숫자는 가장 긴 수와 동일한 길이로 되도록 하기 위해 제로로 왼쪽 자리맞춤된다. 수가 길이가 동일하고, 제2숫자가 더 큰 값일 경우, 결과는 후에 음의(negative) 결과를 나타내기 위해 마이너스로 변화될 것이다. 더 긴 수는 "D" 어레이로 판독되며, 더 짧은 수는 "E" 어레이로 판독된다. 가산 루틴은 동시에 마지막 인덱스로부터 첫 번째 인덱스로까지 동시에 "D" 및 "E" 어레이를 통해 연속적으로 반복 또는 순환되도록 한다. 감산의 결과는 처음부터 끝까지 "TOTAL" 어레이의 모든 요소를 통해 순환되도록 하고, 그 결과를 연결(concatinating)한 다음, 선행하는 제로를 제거함으로써 획득된다. 결과의 부호는 변화될 수 있으며, 선행하는 모든 제로는 제로가 하나만 존재할 경우를 제외하고 제거된다.The addition routine is shown in the flow chart of FIG. 1d and described by steps 400-413 described in the examples below. The number of the largest value is identified, and the second number is left justified to zero to be the same length as the longest number. If the numbers are the same length and the second number is a larger value, the result will later change to negative to indicate a negative result. Longer numbers are read into an "D" array and shorter numbers are read into an "E" array. The addition routine allows for continuous iteration or cycling through the "D" and "E" arrays from the last index to the first index at the same time. The result of the subtraction is obtained by allowing it to cycle through all the elements of the "TOTAL" array from beginning to end, concatinating the results, and then removing the leading zeros. The sign of the result can be changed and all preceding zeros are removed except when there is only one zero.

본 발명의 프로세스는 임의의 여러 가지 프로그래밍 언어로 구현될 수 있다. 특정 프로세스 단계는 프로세스가 소정의 언어로 구현될 때, 변경될 수도 있다. 그러나, REXX와 같은 몇몇 프로그래밍 언어에서는 변경될 필요가 없다.The process of the present invention can be implemented in any of a variety of programming languages. Certain process steps may change when the process is implemented in a given language. However, in some programming languages such as REXX, there is no need to change.

본 발명의 프로세스는 완전한 정밀도를 가지며 공통 베이스로 변환시킬 필요없이 임의의 베이스로 임의의 개수의 디지트를 갖는 임의의 두 수의 가산 및/또는 감산을 실행한다. 각 수의 디지트 개수에 관계없이, 실행 속도는 각각의 디지트에 대해 거의 일정하다. 전술한 바와 같이, 본 발명의 프로세스는 공통 베이스로의 변환을 필요로 하지 않는다. 본 발명의 프로세스는 가산 또는 감산 오퍼레이션이 실행됨에 있어서 얼마나 많은 디지트가 사용되는지에 상관없이 완전한 정밀도를 갖는 결과를 생성한다. 또한, 본 발명의 프로세스는 (i) 부동 소수점으로의 변환과, (ii) 수를 하나의 베이스에서 다른 베이스로 변환시키기 위한 표준 수치 알고리즘과, (iii) 가산 또는 감산 테이블의 정의와, (iv) 지수화의 사용을 필요로 하지 않는다.The process of the present invention executes any two numbers of additions and / or subtractions with any number of digits to any base with complete precision and without the need to convert to a common base. Regardless of the number of digits in each number, the execution speed is almost constant for each digit. As mentioned above, the process of the present invention does not require conversion to a common base. The process of the present invention produces a result with full precision regardless of how many digits are used in the addition or subtraction operation. In addition, the process of the present invention includes (i) conversion to floating point, (ii) standard numerical algorithms for converting numbers from one base to another, (iii) definition of addition or subtraction tables, and (iv Does not require the use of exponentiation.

[시스템 아키텍처][System Architecture]

제2도를 참조하면, 본 발명의 프로세스를 실행시키는데 사용되는 시스템(60 0)의 블록도가 도시되어 있다. 시스템(600)의 기본적인 기능은 특정 베이스를 갖는 두 개의 정수를 가산하거나 감산하는 것이다. 정수는 임의의 길이일 수 있다(즉, 디지트의 수는 시스템 메모리의 양에 의해서만 제한된다). 또한, 두 개의 정수에 대한 베이스 시스템은 특정 설계 구성의 범위(예를 들면 2 이상 127 이하) 내에서 선택가능하다.Referring to FIG. 2, a block diagram of a system 600 used to execute the process of the present invention is shown. The basic function of system 600 is to add or subtract two integers with a particular base. The integer can be of any length (ie, the number of digits is limited only by the amount of system memory). In addition, the base system for two integers is selectable within a range of specific design configurations (eg, 2 to 127).

시스템(600)은 (i) 디지트 심볼을 ROM(판독 전용 메모리) 참조 테이블을 사용하여 특정 베이스에서 2진수로 또는 2진수에서 특정 베이스로 변환시키는 것과, (ii) 2진 연산을 사용하여 디지트를 더하거나 빼는 것과, (iii) 최하위 디지트로부터 시작하여 연속적으로 입력 숫자 또는 오퍼랜드의 디지트의 각 쌍을 프로세스하는 것의 3가지 기능을 수행한다.The system 600 uses (i) converting digit symbols from a specific base to binary or from binary to a specific base using a ROM (Read Only Memory) reference table, and (ii) using a binary operation to convert the digits. It performs three functions: adding or subtracting, and (iii) processing each pair of digits of an input number or operand consecutively starting from the lowest digit.

시스템(600)은 가산기 및 변환 회로(604), 시퀸스 제어기(606), 시스템 참조 테이블(608)을 포함한다. 시스템(600)은 메모리(602)와 인터페이스한다. 메모리(60 2)는 랜덤 액세스 메모리부(RAM)(602a) 및 레지스터 스택부(602b)를 포함한다. 랜덤 메모리 액세스부(602a)는 공유형 메모리로서 작동한다. 메모리 부(602 a) 및 레지스터 스택(602b)은 시스템(600)으로 입력되는 데이터 및 제어 신호를 인터페이스하기 위한 변환 링크로서 동작한다. 이러한 구성은 소프트웨어 기능이 호출 프로그램과 인터페이스하고 파라미터를 전달하는 방식과 유사하다.System 600 includes an adder and conversion circuit 604, a sequence controller 606, and a system reference table 608. System 600 interfaces with memory 602. The memory 60 2 includes a random access memory section (RAM) 602a and a register stack section 602b. The random memory access unit 602a operates as shared memory. The memory portion 602 a and the register stack 602 b operate as translation links for interfacing data and control signals input to the system 600. This configuration is similar to how software functions interface with calling programs and pass parameters.

가산기 및 변환 회로(604)는 버스(610)를 통해 메모리(602)로부터 두 개의 입력 오퍼랜드 또는 수를 수신한다. 회로(604)는 두 개의 입력 숫자의 각 디지트에 대한 베이스 변환, 가산, 및 감산의 기본적인 산술 연산을 수행한다. 회로(604)는 산술 논리 유니트(ALU)로 구현될 수 있다. 각 디지트 심볼을 특정 베이스로부터 2진수로 변환시키며 또는 그 반대로 변환시키는 것은 심볼 참조 테이블(608)을 통해 수행된다. 참조 테이블(608)은 어드레스 버스(612)를 통해 회로(604)에 의해 생성된 테이블 어드레스를 수신한다. 변환은 데이터 버스(614)를 통해 회로(604)로 다시 경로지정된다. 참조 테이블(608)은 바람직하게 EPROM(소거가능한 프로그램가능 판독 전용 메모리)이다. 회로(604)는 부적절한 입력 데이터 또는 하드웨어 에러가 검출될 때, 에러 신호 "ERR"(630)을 출력한다. 회로(604)는 또한 이하에 기술될 캐리 "CO" 신호(632)를 출력한다.Adder and conversion circuit 604 receives two input operands or numbers from memory 602 via bus 610. Circuit 604 performs the basic arithmetic operations of base transform, addition, and subtraction for each digit of the two input numbers. Circuit 604 may be implemented with an arithmetic logic unit (ALU). The conversion of each digit symbol from a particular base to binary and vice versa is performed through symbol reference table 608. The lookup table 608 receives the table address generated by the circuit 604 via the address bus 612. The conversion is routed back to circuit 604 via data bus 614. Reference table 608 is preferably EPROM (erasable programmable read only memory). The circuit 604 outputs an error signal "ERR" 630 when inappropriate input data or hardware error is detected. The circuit 604 also outputs a carry "CO" signal 632, which will be described below.

시퀸스 제어기(606)에 의해 루프 시퀸싱(loop sequencing), 에러 체킹, 타이밍 제어가 생성된다. 제어기(606)는 메인(main) 하드웨어 시스템(도시되지 않음)으로부터 시스템의 마스터 클럭 신호 "CLK"(616), 리셋 신호 "RST"(618), 및 연산 개시 클럭 신호 "START"(620)를 수신한다. 신호(616, 618, 620)는 시스템(600)을 구동시키고 동기화시킨다. 시퀸스 제어기는 "CO" 신호(632)를 수신하며, 가산되거나 감산될 디지트의 순차적인 쌍에 대한 캐리 및 바로우 상태를 프로세싱한다. 제어기(606)는 가산되거나 감산될 입력 숫자를 포함하는 메모리(602)내의 메모리 로케이션의 어드레스를 생성시킨다. 어드레스는 데이터 버스(622)를 통해 메모리(602)로 입력 된다. 데이터는 데이터 버스(628)를 통해 메모리(602)와 제어기(606)간에 상호교환된다. 파라미터 및 데이터 인터페이스는 메모리(602)의 공유형 액세스에 기초한다. 제어기(606)는 각각의 순차적인 일련의 실행 단계에 대해 다중-비트 제어 "CNTL" 신호(634)를 출력한다. 제어기(606)는 시스템(600)의 상태 조건을 지시하기 위해 "STATUS" 신호(624)를 출력한다. 제어기(606)는 또한 에러 지시 신호 "ERR"(626)을 출력한다. 에러 신호 "ERR"(626)는 회로(604)로부터의 에러 신호 "ERR"(630) 및 시퀸스 제어기(606)가 만나게 되는 임의의 에러의 수신에 응답하여 출력된다.Loop sequencing, error checking, and timing control are generated by the sequence controller 606. Controller 606 receives the system's master clock signal "CLK" 616, reset signal "RST" 618, and operation start clock signal "START" 620 from the main hardware system (not shown). Receive. Signals 616, 618, 620 drive and synchronize system 600. The sequence controller receives the "CO" signal 632 and processes the carry and barrow states for a sequential pair of digits to be added or subtracted. Controller 606 generates an address of a memory location within memory 602 that contains the input number to be added or subtracted. The address is input to the memory 602 via the data bus 622. Data is interchanged between the memory 602 and the controller 606 via the data bus 628. The parameters and data interface are based on shared access of the memory 602. Controller 606 outputs a multi-bit control "CNTL" signal 634 for each sequential series of execution steps. The controller 606 outputs a "STATUS" signal 624 to indicate the status condition of the system 600. The controller 606 also outputs an error indication signal "ERR" 626. The error signal "ERR" 626 is output in response to receiving any error from the circuit 604 that the error signal "ERR" 630 and the sequence controller 606 encounter.

메인 하드웨어 시스템(도시되지 않음)은 제어기(606)로 입력될, RST 및 START 신호(618, 620)를 출력하기에 앞서, 데이터, 두 개의 정수 오퍼랜드를 공유형 메모리부(602a)로 로드하며, 나머지 파라미터를 레지스터 스택 부(602b)로 로드 한다. 회로(604)는 메인 하드웨어 시스템에 의한 사용을 위해 공유형 메모리부(602 a) 및 레지스터 스택부(602b)로 입력하도록 가산 또는 감산 연산의 결과 및 다른 파라미터를 데이터 버스(610)상에 로드한다.The main hardware system (not shown) loads data, two integer operands into the shared memory section 602a, prior to outputting the RST and START signals 618, 620, which are input to the controller 606, The remaining parameters are loaded into the register stack section 602b. Circuit 604 loads the result of the addition or subtraction operation and other parameters on data bus 610 for input into shared memory portion 602 a and register stack portion 602 b for use by the main hardware system. .

제3도는 데이터 영역의 버스 동작(bussing) 및 구성과 시스템(600)의 제어를 도시한다. 공유형 시스템 메모리(602a)에는 3개의 데이터 블록(N1, N2, Nx)이 도시되어 있다. N1 및 N2는 가산되거나 감산될 2개의 입력 정수이며, Nx는 가산 또는 가산 연산의 결과가 로드될 메모리 위치이다. N1 및 N2는 임의의 개수의 디지트로 각각 구성될 수 있다. Nx에 대한 출력 영역은 N1 및 N2 중 큰 쪽보다 적어도 하나의 디지트가 큰 것이 바람직하다. 계속되는 설명에서, 시스템 구성은 디지트당 1바이트 문자에 기초하고 있으며, 베이스 범위는 2이상 128 이하이다.3 shows bussing and configuration of the data area and control of the system 600. Three data blocks N1, N2, and Nx are shown in shared system memory 602a. N1 and N2 are two input integers to be added or subtracted, and Nx is a memory location where the result of the addition or addition operation is to be loaded. N1 and N2 may each consist of any number of digits. The output area for Nx is preferably at least one digit larger than the larger of N1 and N2. In the description that follows, the system configuration is based on one byte characters per digit, and the base range is 2 or more and 128 or less.

레지스터 스택(602b)은 8개의 파라미터를 저장한다. "FUNC"로 지정된 제1 레지스터는 수행될 함수, 즉 가산(+) 또는 감산(-)을 나타낸다. "BASE"로 지정된 제2레지스터는 사용될 숫자 베이스를 저장한다. N1@, N2@, Nx@로 각각 지정된 제 6, 제7, 제8레지스토는 각 정수에 대한 최하위 디지트의 메모리 어드레스를 포함한다. N1_CNT, N2_CNT 및 Nx_CNT로 각각 지정된 제3, 제4, 제5레지스터는 정수의 디지트의 카운트 또는 양(또는 길이)을 각각 포함한다.The register stack 602b stores eight parameters. The first register, designated "FUNC", represents the function to be performed, i.e. addition (+) or subtraction (-). The second register designated as "BASE" stores the numeric base to be used. The sixth, seventh, and eighth registers designated N1 @, N2 @, and Nx @, respectively, contain the memory addresses of the lowest digits for each integer. The third, fourth, and fifth registers designated N1_CNT, N2_CNT, and Nx_CNT, respectively, include counts or amounts (or lengths) of integer digits, respectively.

변형 실시예에서, 선택된 파라미터는 메인 하드웨어 시스템을 사용하지 않고 점선으로 도시된 매크로(636)를 통해 메모리(602b)로부터 레지스터 스택으로 로드될 수 있다. 이러한 구성을 통해 시스템(600)은 자체 동작 시스템(self contained system)으로 변경될 수 있다.In a variant embodiment, the selected parameters may be loaded from the memory 602b into the register stack via the macro 636 shown in dashed lines without using the main hardware system. Through this configuration, the system 600 may be changed into a self contained system.

"FUNC" 레지스터에 저장된 함수 파라미터는 전형적으로 1 바이트(즉, 8 비트)이며, 함수 디코더(637)를 통해 1:256 등과 같이 다수의 가능한 함수 중 하나로 디코딩된다. 전술한 바와 같이 본 발명의 프로세스는 2 개의 함수, "+"(가산) 및 "-"(감산)을 실행시키도록 구성된다. 레지스터 스택(602b)으로 그 밖의 다른 함수가 로드될 경우 에러 신호를 발생시킬 것이다. 그러나, 시스템(600)은 가산 또는 감산외의 함수를 수행하도록 확장될 수 있다.The function parameter stored in the "FUNC" register is typically 1 byte (ie 8 bits) and decoded into one of a number of possible functions, such as 1: 256, via the function decoder 637. As described above, the process of the present invention is configured to execute two functions, "+" (addition) and "-" (subtraction). If any other function is loaded into the register stack 602b, it will generate an error signal. However, system 600 may be extended to perform functions other than addition or subtraction.

시스템 메모리 어드레스 버스 멀티플렉서(640)는 선택 신호 "SEL"을 수신한다. 선택 신호 "SEL"는 Ni@ 레지스터에 저장된 어드레스를 통해 어드레싱될 Nij를 선택하기 위해 시퀸스 제어기(606)로부터 수신되며, 2 비트의 제어 신호(634)로 구성된다(이때, I=1,2 혹은 x인 정수이며, j는 각각의 정수에 대한 특정 디지트를 나타낸다). 이러한 구성은 N1 또는 N2에 대한 특정 디지트를 판독하는 것과, 데이터 버스(610)를 통해 디지트를 Nx로 기록하는 것을 허용한다. 각 디지트의 세트가 프로세스됨에 따라, Ni@ 레지스터는 다음 디지트 시스템 메모리(602a)에 어드레스로 증가된다. 메인 시스템(도시되지 않음)은 어드레스 버스(622) 및 데이터 버스(610)을 통해 시스템 메모리(602a)를 완전히 액세스하고 제어할 수 있다.System memory address bus multiplexer 640 receives a selection signal "SEL". The select signal " SEL " is received from the sequence controller 606 to select Nij to be addressed via an address stored in the Ni @ register and consists of a two bit control signal 634 (where I = 1, 2 or x is an integer, and j represents a specific digit for each integer). This configuration allows reading specific digits for N1 or N2 and writing digits to Nx via data bus 610. As each set of digits is processed, the Ni @ register is incremented to an address in the next digit system memory 602a. The main system (not shown) can fully access and control the system memory 602a via the address bus 622 and data bus 610.

레지스터 스택(602b)내에서 "BASE"로 지정된 레지스터의 내용은 바람직한 수 베이스의 2진수 표현으로 변환된다. 이는 제4도에 도시된 베이스 선택 시스템 참조 회로(700)에 의해 달성된다. 베이스-변환기 회로(700)는 입력 베이스-심볼을 동치 2진수 표현으로 변환시킨다. 예로서, 심볼 "G"에 대해 베이스 16에서 연산될 경우, 베이스 변환기 회로의 출력은 '00010000'b가 된다. 특정 베이스에서의 심볼에 의해 표현되는 베이스 파라미터(702)는 레이스터 스택(602b)으로부터 출력되며, EPROM( 706)의 어드레스를 생성시키는 어드레스 디코드 회로(704)로 입력된다. EPROM(706)의 내용은 디코딩되는 베이스 심볼의 대응하는 2진수 표현으로 프리-로드된다(pre-loaded). 8-비트를 갖는 임의의 베이스 심볼은 유일한 EPPOM 어드레스(1:256)로 디코딩 될 것이다. EPROM(706)은 유효 또는 지원되는 베이스를 나타내지 않는 심볼에 대응하는 어드레스 위치에 '0'b을 프리-로드하며, 이로 인해 "부적절한 베이스(i nvalid base)" 에러를 생성시킨다. EPROM(706)의 출력(708)은 2진수 형태의 베이스이며, 심볼 참조 회로(608a-c) 및 디지트 가산/감산 회로(604)로 입력된다. 비교기 (710)는 베이스의 2진수 값이 1보다 큰지의 여부를 확인한다. 베이스의 값이 1보다 크기 않을 경우, 시퀸서(606)에 대해 에러 상태가 플래그(flag)된다.The contents of the register designated as "BASE" in the register stack 602b are converted to a binary representation of the preferred number base. This is accomplished by the base select system reference circuit 700 shown in FIG. Base-converter circuit 700 converts the input base-symbol into an equivalent binary representation. As an example, when computed at base 16 for symbol " G ", the output of the base converter circuit is' 00010000'b. The base parameter 702 represented by the symbol in the particular base is output from the raster stack 602b and input into the address decode circuit 704 which generates the address of the EPROM 706. The content of EPROM 706 is pre-loaded with the corresponding binary representation of the base symbol to be decoded. Any base symbol with 8-bits will be decoded into a unique EPPOM address (1: 256). EPROM 706 preloads' 0'b at an address location corresponding to a symbol that does not indicate a valid or supported base, thereby generating an "invalid base" error. The output 708 of the EPROM 706 is a base in binary form and is input to the symbol reference circuits 608a-c and the digit add / subtract circuit 604. Comparator 710 checks whether the base binary value is greater than one. If the value of the base is not greater than 1, an error condition is flagged for the sequencer 606.

실질적인 심볼 변환은 기능 호출(invocation)후 한번에 실행된다. 2진수 형태의 출력 베이스는 제2도의 EPROM 탐색 회로(608)의 3개의 분리된 부분인 N1, N2, Nx 심볼 참조 회로(608a, 608b, 608c)로 입력된다. 출력 2진수 베이스는 또한 가산/감산 회로(604)로 입력된다. N1 및 N2 심볼 참조 회로(608a, 608b)는 각각 입력 디지트 심볼을 선택된 베이스에 대한 심볼의 2진수 표현으로 변환시킨다. 2진수 표현은 회로(604)에 입력되기 전에 출력 레지스터에서 래치된다.The actual symbol conversion is performed at one time after the invocation of the function. The output base in binary form is input to N1, N2, Nx symbol reference circuits 608a, 608b, 608c, which are three separate parts of the EPROM search circuit 608 of FIG. The output binary base is also input to the add / subtract circuit 604. N1 and N2 symbol reference circuits 608a and 608b convert the input digit symbols into binary representations of the symbols for the selected base, respectively. The binary representation is latched in the output register before being input into the circuit 604.

Nx 심볼 참조 회로(608c)는 전술한 N1 및 N2 심볼 참조 회로(608a, 608b)와 반대의 방식으로 동작된다. 회로(608c)는 2진수 디지트를 수신하며, 디지트를 선택된 수 베이스에 대한 동치 표현 심볼로 변환시킨다. 동치 표현 심볼은 출력 레지스터로 래치되며, 그 후 데이터 버스(610)를 통해 시스템 메모리(602a)로 기록된다. 기호 N1j, N2j, Nxj는 각각 N1, N2, Nx에 대한 j번째 디지트 심볼을 나타낸다.The Nx symbol reference circuit 608c is operated in the opposite manner to the N1 and N2 symbol reference circuits 608a and 608b described above. Circuit 608c receives the binary digits and converts the digits into equivalent representation symbols for the selected number base. Equivalence representation symbols are latched into output registers and then written to system memory 602a via data bus 610. The symbols N1j, N2j, and Nxj represent j-th digit symbols for N1, N2, and Nx, respectively.

디지트 가산/감산 회로(604)의 기능은 선택된 수 베이스 시스템에서 2진수 디지트 쌍에 대해 2진수 가산 또는 감산을 수행하는 것이다. 이어서, 이 연산은 연속적으로 최하위 디지트에서 최상위 디지트까지 N1 및 N2의 모든 디지트에 대해 반복된다. 이 기능은 디지트 연산간의 적절한 캐리(carry) 및 바로우(borrow) 상태를 유지한다. 이 연산은 종래의 2진수 가산 또는 감산과 현저하게 다르다.The function of the digit add / subtract circuit 604 is to perform binary addition or subtraction on binary digit pairs in the selected number base system. This operation is then repeated for every digit of N1 and N2 from the lowest digit to the most significant digit in succession. This feature maintains proper carry and borrow between digit operations. This operation differs significantly from conventional binary addition or subtraction.

부호(sign) 멀티플렉서(650)는 감산 연산의 결과가 음의 결과일 때, 상태 시퀸서 회로(606)로부터 선택 신호 "SEL"을 수신하는 즉시 "-" 부호 심볼을 부가한다. 상태 시퀸서(606)가 회로(604)에 의해 출력된 캐리/바로우 출력 신호 "Co/Bo"(632)를 조사한 후, 이 상태 시퀸서(606)가 선택 신호 "SEL"를 출력할 지가 판단된다.The sign multiplexer 650 adds a "-" sign symbol upon receipt of the selection signal "SEL" from the state sequencer circuit 606 when the result of the subtraction operation is a negative result. After the state sequencer 606 examines the carry / barrow output signal " Co / Bo " 632 outputted by the circuit 604, it is determined whether the state sequencer 606 outputs the selection signal " SEL ".

상태 시퀸서 회로(606)는 바람직한 기능을 수행하기 위해 필요한 모든 하드웨어 상태를 통해 단계를 밟는다. 회로(606)는 시스템 메모리(602a)로부터 액세스한 디지트의 수를 결정하기 위해 레지스터 스택(602b)로부터 N1_COT를 사용한다. 회로(606)는 또는 부적절한 입력 데이터 또는 시스템 중단 상태에 의해 에러 신호 "ERR"(626)를 통해 에러를 플래그시킨다.State sequencer circuit 606 steps through all of the hardware state necessary to perform the desired function. Circuit 606 uses N1_COT from register stack 602b to determine the number of digits accessed from system memory 602a. Circuit 606 flags the error via the error signal "ERR" 626 due to improper input data or system outage status.

제4도를 참조하면, 베이스-심불, N1 및 N2 변환 오퍼레이션이 도시된다. Nx 심볼 변환 기능은 실질적으로 N1과 동일한, 제4도에 명확히 도시하지 않았다. Nx 심볼 변환 기능은 이하 더 상세히 기술될 것이다. 전술한 바와같이, 이들 블록의 주요 기능은 특정 정수를 베이스 심볼로부터 2진수로 변환하고, 이와 반대로 2진수로부터 베이스 심볼로 변환하는 것이다. 이는 EPROM 참조 테이블을 사용하여 하드웨어로 달성된다.Referring to FIG. 4, the base-to-symbol, N1 and N2 conversion operations are shown. The Nx symbol conversion function is not explicitly shown in FIG. 4, which is substantially the same as N1. The Nx symbol conversion function will be described in more detail below. As mentioned above, the main function of these blocks is to convert certain integers from base symbols to binary and vice versa. This is accomplished in hardware using the EPROM reference table.

제3도 및 제4도를 다시 참조하면 N1 및 N2 심볼 탐색 회로(608a, 608b)는 서로 기능적으로 동일하다. 그러나, 이하의 설명을 간단하게 하기 위해, 회로(608a)만 기술된다. 회로(608a)는 각각의 정수 심볼(Nij)을 동치 2진수 표현으로 변환시킨다. 정수 심볼(712)은 시스템 메모리(602a)로부터 출력되며, EPROM(716)의 어드레스중 하나를 생성하는 어드레스 디코드 회로(714)로 입력된다. 특정 EPROM 참조 테이블은 사용되는 베이스에 의해 선택된다. 이는 베이스-대-베이스 심볼 정의로부터 완전한 독립을 허용한다. 베이스 심볼이 다음 고차 베이스의 순서화된 서브세트이고, 이것이 사용된 모든 베이스에 대해 유지될 경우, EPROM은 단일 테이블로 감소될 수 있다. 선택된 EPROM의 2진수 출력(718)은 이 값 사용될 베이스의 2진수 값보다 더 작도록 하기 위해 비교기(720)를 통해 또한 체크된다. 이 프로세스는 Ni_CNT 디지트에 대한 입력 정수의 각 디지트 심볼에 대해 반복된다. Ni_CNT 비교기(722)는 회로(608)가 정수에서의 디지트 수 이상으로 클럭될 때, 제로로 세트되도록 한다. 이는 더짧은 수의 고차 포지션에 제로를 패팅하므로써 동일하지 않는 길이의 정수를 처리하기 위해 요구된다. 그 후, 2진수 출력(718)은 출력 레지스터( 724)로 래치되며, 가산/감산 회로(604)로 전송된다.Referring back to FIGS. 3 and 4, the N1 and N2 symbol search circuits 608a, 608b are functionally identical to each other. However, only the circuit 608a is described to simplify the following description. Circuit 608a converts each integer symbol Nij into equivalent binary representation. The integer symbol 712 is output from the system memory 602a and input to the address decode circuit 714 which generates one of the addresses of the EPROM 716. The specific EPROM reference table is selected by the base used. This allows full independence from the base-to-base symbol definition. If the base symbol is an ordered subset of the next higher order base and it is kept for all the bases used, the EPROM can be reduced to a single table. The binary output 718 of the selected EPROM is also checked through the comparator 720 in order to make this value smaller than the base binary value to be used. This process is repeated for each digit symbol of the input integer for the Ni_CNT digit. Ni_CNT comparator 722 causes circuit 608 to set to zero when clocked above the number of digits in the integer. This is required to handle integers of unequal length by patting zero to a shorter number of higher order positions. The binary output 718 is then latched into an output register 724 and sent to the add / subtract circuit 604.

Nx 심볼 탐색 회로(608c)는 회로(608a, 608b)와 동일한 기능을 수행하나, 회로(608a, 608b)가 수행되는 반대 방색으로 수행된다. 회로(608c)는 가산/감산 회로 (604)로부터의 입력을 수신하는 부호 멀티플렉서 회로(650)으로부터 2진수 입력을 수신한다. 그 후, 회로(608c)는 대응 베이스 심볼로 입력을 다시 변환시킨다. 회로 (608c)는 회로(608a, 6087b)와 유사하지만, 회로(608c)에서의 EPROM은 상이한 데이터가 로드된다. 회로(608c)는 정수의 길이에 대한 체크를 위한 비교기를 필요로 하지 않는다. 회로(608c)로부터 출력된 정수의 길이는 시퀸서(606)에 의해 프로세싱된 모든 디지트에 대해 Nx_CNT를 증가시키므로써 세트된다.The Nx symbol search circuit 608c performs the same function as the circuits 608a and 608b, but in the opposite manner in which the circuits 608a and 608b are performed. Circuit 608c receives binary input from sign multiplexer circuit 650 which receives input from add / subtract circuit 604. The circuit 608c then converts the input back to the corresponding base symbol. Circuit 608c is similar to circuits 608a and 6087b, but the EPROM in circuit 608c is loaded with different data. Circuit 608c does not require a comparator for checking the length of integers. The length of the integer output from circuit 608c is set by increasing Nx_CNT for all digits processed by sequencer 606.

특정 베이스의 두 개의 2진 디지트를 가산하는 것은 두 개의 디지트 및 베이스가 진정한(ture) 2진 형태로 표현되면 더 간단한 오퍼레이션으로 된다. 2개의 8비트 디지트를 가산하는 것은 제5도에 도시된 디지트 가산/감산 회로(604)(제3도 참조)의 일부 디지트 가산기 보조 회로(800)의 기능을 구현하도록 구성된 다수의 표준 로직 매크로를 사용하므로써 달성될 수 있다. 제5도를 참조하면, 중간 합이 8-비트 가산기 회로 비트(802)에 의해 생성된다. 회로(802)는 캐리 입력을 갖는 표준 8-비트 2진 가산/감산 매크로에 의해 구현될 수 있다. 첫 번째 디지트 쌍에 대해, 캐리 입력은 시퀸스 제어기(606)에 의해 제로로 세트된다. 그 후, 중간 합은 비교기(804)에 의해 또한 2진수 형태로 베이스와 비교된다. 비교기(804)는 8-비트 비교기 매크로에 의해 구현될 수 있다. 비교기의 출력이 "1"로 세트될 경우(즉, 중간 합≥베이스), 비교기는 다음 연산을 위해 캐리 래치(L)(806)을 세트시키며, AND 게이트(808)를 통해 베이스가 전파되도록 한다. 마지막 연산은 조건부로 중간 합에서 베이스를 감산한다. 이 단계는 8-비트 2진 매크로에 의해 또한 구현 될 수 있는 감산 회로(810)에 의해 달성된다. 캐리 아웃(carry out)은 마지막 디지트 생성을 위해 시퀸스 제어기(606)으로 또한 전송된다. 따라서, 회로(800)는, a) 중간 합을 생성하기 위해 디지트를 가산하는 단계, b) 중간 합을 베이스와 비교하는 단계, c) 중간 합≥베이스일 경우, 중간 합으로부터 베이스를 감하는 단계, 다음 디지트 쌍에 대한 가산을 위해 캐리를 세트하는 단계, d) 중간 합≥베이스일 경우, 중간 합으로부터 제로를 감산하는 단계,다음 디지트 쌍에 대한 가산에 대해 노 캐리(no carrry)를 세트하는 단계, e) 모든 디지트 쌍에 대해 전술한 과정을 반복하는 단계를 포함하는 2개의 디지트를 가산하는 프로세스를 수행한다.Adding two binary digits of a particular base is a simpler operation if the two digits and the base are represented in a true binary form. Adding two 8-bit digits adds a number of standard logic macros configured to implement the functionality of some of the digit adder auxiliary circuits 800 of the digit add / subtract circuit 604 (see FIG. 3) shown in FIG. Can be achieved by use. Referring to FIG. 5, an intermediate sum is generated by the 8-bit adder circuit bit 802. Circuit 802 may be implemented by a standard 8-bit binary add / subtract macro with a carry input. For the first digit pair, the carry input is set to zero by the sequence controller 606. The intermediate sum is then compared by the comparator 804 with the base in binary form as well. Comparator 804 can be implemented by an 8-bit comparator macro. If the output of the comparator is set to " 1 " (i.e., intermediate sum ≥ base), the comparator sets a carry latch (L) 806 for the next operation and allows the base to propagate through the AND gate 808. . The last operation conditionally subtracts the base from the intermediate sum. This step is accomplished by subtraction circuit 810, which may also be implemented by an 8-bit binary macro. Carry out is also sent to the sequence controller 606 for final digit generation. Thus, circuit 800 includes a) adding a digit to produce an intermediate sum, b) comparing the intermediate sum with a base, and c) subtracting the base from the intermediate sum, if intermediate sum≥base. Setting a carry for addition to the next digit pair, d) subtracting zero from the middle sum if intermediate sum ≥ base, and setting a no carrry for addition to the next digit pair. Step, e) adding two digits, comprising repeating the above process for all digit pairs.

제6도를 참조하면, 디지트 가산에 대한 보조 회로(900)가 도시된다. 회로( 900)는 제3도에 도시된 회로(604)의 부분이다. 시퀸서(606)는 N1이 N2보다 더 작을 경우, 두 개의 수에 포함된 모든 디지트를 두 번 프로세싱한다. 가산기 회로(902)는 BASE를 N1i(정수 N1의 첫 번째 디지트)에 가산하여 중간합을 제공한다. N2i(N2의 첫 번째 디지트), N2i, 바로우-인(borrow-in)은 감산 회로(904)를 통해 중간 합으로부터 감산되어 중간차를 제공한다. 디지트의 첫 번째 쌍에 대해, 바로우-인은 시퀸스 제어기(606)에 의해 제로로 세트된다. 그 후, 중간 차가 비교기(906)에 의해 BASE와 비교된다. 비교기의 출력이 "1"로 세트될 경우(즉, 중간차≥베이스), 비교기는 다음 연산에 대해 바로우 래치(L)(906)를 리셋시키며, BASE가 AND 게이트(908)를 통해 전파되도록 한다. 마지막 연산은 조건부로 감산 회로(910)를 통해 중간 차로부터 BASE를 감산하는 것이다. 바로우-인은 두 번째 패스가 요구되는지와 감산 부호("-")를 발생시킬지를 판단하기 위해 바로우 아웃이 시퀸스 제어기(606)로 또한 전송된다. 따라서, 보조 회로(900)는, a) 중간 합을 생성하기 위해 BASE를 N1i에 가산하는 단계, b) 중간 차를 생성하기 위해 합으로부터 N2i 및 바로우-인을 감산하는 단계, c) 중간 차와 BASE를 비교하는 단계, d) 중간 차≥베이스일 경우, 베이스를 중간 차로부터 감산하는 단계, 다음 디지트 쌍에 대한 감산을 위해 노 바로우(no borrow)를 세트시키는 단계, e) 중간 차≥베이스인 경우,중간 차로부터 제로를 감산하는 단계,다음 디지트 쌍에 대한 감산을 위해 바로우를 세트시키는 단계, f) 모든 디지트의 쌍에 대해 위의 과정을 반복하는 단계를 포함하는 두 개의 디지트를 감산하는 프로세스를 수행한다.Referring to FIG. 6, an auxiliary circuit 900 for digit addition is shown. Circuit 900 is part of circuit 604 shown in FIG. The sequencer 606 processes twice all the digits contained in the two numbers when N1 is smaller than N2. The adder circuit 902 adds BASE to N1i (the first digit of the integer N1) to provide an intermediate sum. N2i (first digit of N2), N2i, borrow-in is subtracted from the intermediate sum through a subtraction circuit 904 to provide the intermediate difference. For the first pair of digits, the barlow-in is set to zero by the sequence controller 606. The intermediate difference is then compared to BASE by comparator 906. If the output of the comparator is set to " 1 " (i.e., intermediate difference≥base), the comparator resets the right latch (L) 906 for the next operation, causing BASE to propagate through the AND gate 908. . The final operation is conditionally subtracting the BASE from the intermediate difference via the subtraction circuit 910. The bow-in is also sent to the sequence controller 606 to determine if a second pass is required and to generate a subtraction sign ("-"). Accordingly, the auxiliary circuit 900 includes a) adding BASE to N1i to produce an intermediate sum, b) subtracting N2i and barlow-in from the sum to produce an intermediate difference, c) Comparing BASE, d) subtracting the base from the intermediate difference if intermediate difference≥base, setting no borrow for subtraction of the next digit pair, e) intermediate difference≥base If, the process of subtracting two digits comprising subtracting zero from the intermediate difference, setting the barrow for subtraction of the next digit pair, and f) repeating the above process for all pairs of digits. Do this.

상기 시퀸스의 종료시, 디지트의 최상위 쌍에 대한 바로우 상태가 세트된 경우, 시퀸서(606)는 N1〉N2로 판단하며, 두 번째 패스(pass)가 개시된다. 두 번째 패스는 어드레스 포인터 Ni_@, 디지트 카운터(Ni_CNT)의 복구 및 N1 및 N2를 스와핑(swapping)하는 것으로 구성된다. N1 및 N2의 스와핑은 단순히 대응하는 메모리 어드레스 레지스터 N1_@ 및 N2_@를 단순히 스와핑하므로써 달성된다. 복구 및 스와핑 오퍼레이션이 완료되면, 전술한 디지트 감산 프로세서는 다시 반복된다.At the end of the sequence, if the barlow state for the highest pair of digits is set, the sequencer 606 determines N1 > N2, and a second pass is initiated. The second pass consists of address pointer Ni_ @, recovery of digit counter Ni_CNT and swapping N1 and N2. Swapping of N1 and N2 is achieved by simply swapping the corresponding memory address registers N1_ @ and N2_ @. When the recovery and swapping operation is completed, the above-described digit subtraction processor is repeated again.

제7도를 참조하면, 시퀸스 제어기(606)는 기본 시프트 레지스터를 사용하여 구현되는 간단한 상태 머신이다. 시퀸서 제어기(606)는 시프트 레지스터에 대한 시스템 클럭을 인에이블시키고 임의의 시프트 레지스터 래치가 온(on) 상태일 동안 클럭을 인에이블 상태로 유지하므로써 시작된다. 첫 번째 클럭 펄스 및 START 신호에 의해 시프트 레지스터가 로직 "1"로 로드된다. 로직 "1"은 한번에 하나의 래치를 턴 온시킴으로써 전체 시프트 레지스터 스트링을 통해 전달된다. 마지막 래치는 리셋 신호를 생성시키고 전술한 완료 상태 조건(가산 또는 감산 프로세스가 종료됨) 또는 에러 상태를 인에이블시킨다.Referring to FIG. 7, the sequence controller 606 is a simple state machine implemented using a basic shift register. Sequencer controller 606 is started by enabling the system clock for the shift register and keeping the clock enabled while any shift register latch is on. The shift register is loaded into logic "1" by the first clock pulse and the START signal. Logic "1" is passed through the entire shift register string by turning on one latch at a time. The last latch generates a reset signal and enables the completion status condition (addition or subtraction process terminated) or error condition described above.

상태의 서브 세트상의 시퀸서(606)의 순환은 바람직한 수의 루프가 수행될 때까지 시프트 레지스터내의 분기(branching) 래치내의 비트를 원하는 상태로 제지시하므로써 달성될 수 있다. 이와 같은 순환 능력은 가산 또는 감산 오퍼레이션이 반복적으로 실행될 때 각 디지트 쌍에 대해 한번씩 요구된다. 시퀸스 제어기(606)에 의해 실행되는 기본적인 기능은, a) 시스템(600)을 리셋시키고, b) 시스템(600)에 대해 비지(busy) 상태로 세트시키고, c) 필요한 경우 메모리(602)로부터 파라미터를 로드하고, d) 레지스터 스택(602b)으로부터 수신된 파라미터를 저장하고, e) 베이스 심볼을 선택 및 판독하고, f) N1I 심볼을 선택 및 판독하고, g) N2i 심볼을 선택 및 판독하고, h) + 또는 - 오퍼레이션을 디코딩 및 실행하고, i) Nxi 심볼을 선택 및 기록하고, j) (증가 & 감소) 카운터 및 어드레스 레지스터를 유지하고, k) 순환 조건을 판단 및 셋업하고, l) (N1〈N2에 대해) 다수의 감산 패스 조건을 판단하고, m) 최상위 디지트("1" 또는 "-")를 세트시키고, n) 에러 상태를 송출하며, o) 프로세싱을 종료하는 것이다.Recursion of sequencer 606 on a subset of states can be accomplished by forcing the bits in the branching latches in the shift register to the desired state until the desired number of loops are performed. This recursive capability is required once for each digit pair when an add or subtract operation is executed repeatedly. The basic functions performed by the sequence controller 606 include: a) resetting the system 600, b) setting a busy state for the system 600, and c) parameters from the memory 602, if necessary. D) store parameters received from register stack 602b, e) select and read base symbols, f) select and read N1I symbols, g) select and read N2i symbols, and h ) Decode and execute an operation, i) select and record an Nxi symbol, j) maintain (increment & decrement) counters and address registers, k) determine and set up a recursive condition, and l) (N1). <N2) determine a number of subtraction pass conditions, m) set the most significant digit ("1" or "-"), n) issue an error state, and o) terminate processing.

제8도는 변형 가산기/감산기 회로(1000)를 도시한다. 회로(1000)는 가변 베이스 디지트 가산/감산 회로이다. 회로(1000)는 선택된 수 베이스 체계에서 이전 코드화된 디지트 쌍에 대해 2진수 가산 또는 감산 오퍼레이션을 수행한다. 회로(1000)는 최하위 디지트에서 최상위까지 숫자쌍으로 쌍 내의 모든 디지트에 대해 순차적 방식으로 가산 또는 감산 오퍼레이션을 수행하기 위해 반복적으로 인에이블된다. 회로(1000)는 각 디지트 쌍에 대한 오퍼레이션시에 적절한 캐리 및 바로우 상태 조건을 유지하며, 입력 데이터가 유효한 것으로 간주한다. 회로(1000)는 종래의 2진수 가산 또는 감산과 현저하게 다른 방식으로 가산 및 감산 오퍼레이션을 수행한다.8 shows a strain adder / subtracter circuit 1000. The circuit 1000 is a variable base digit add / subtract circuit. Circuit 1000 performs a binary addition or subtraction operation on the previously coded digit pair in the selected number base scheme. Circuit 1000 is repeatedly enabled to perform addition or subtraction operations in a sequential manner on all digits in the pair in pairs of numbers from the least significant digit to the most significant. The circuit 1000 maintains the appropriate carry and barlow state conditions during operation for each digit pair, and considers the input data valid. Circuit 1000 performs addition and subtraction operations in a manner significantly different from conventional binary addition or subtraction.

제8도를 참조하면, 모든 데이터 베이스 8비트 폭이다. Digit_1 및 Digit_2 버스는 캐리/바로우-인(Ci)와 함께 가산되거나 감산될 2진 코드화된 디지트이다. 오퍼레이션이 수행될 선택된 수 베이스는 BASE로 지정된 데이터 베이스를 통해 회로(1000)로 입력된다. 회로(1000)는 Digit_Out 버스상에 가산 또는 감산 오퍼레이션의 결과를 출력하며, 또한 캐리/바로우 출력 Co 상태를 출력한다. 회로(1000)는 초기화 기능 모드를 선택하는 "Rst" 및 "Add/Sub" 신호를 또한 수신한다. 시스템 클럭킹 분포(clocking distribution)는 도시되지 않았다.Referring to FIG. 8, all databases are 8 bits wide. The Digit_1 and Digit_2 buses are binary coded digits to be added or subtracted with carry / barrow-in (Ci). The selected number base on which the operation is to be performed is input to the circuit 1000 through a database designated as BASE. The circuit 1000 outputs the result of the addition or subtraction operation on the Digit_Out bus, and also outputs a carry / barrow output Co state. The circuit 1000 also receives "Rst" and "Add / Sub" signals to select the initialization function mode. The system clocking distribution is not shown.

제9도는 디지트 가산/감산 회로(1000)의 디지트 가산기의 보조 회로(1100)를 도시한다. 특정 베이스에서 2 개의 2진 디지트의 가산은 두 개의 디지트 및 베이스가 진정한 이진 형식으로 표시될 경우 휠씬 간단한 작업이다. 두 개의 8비트 디지트를 가산하는 것은 회로(1100)의 기능을 수행하도록 구성된 다수의 표준 로직 매크로를 사용하므로써 달성될 수 있다. 제9도를 참조하면, Ni 및 N2i(가산될 입력 정수)의 중간 합은 8-비트 가산기 회로(1102)에 의해 생성된다. 그 후, 중간 합은 8- 비트 2진 비교기(1104)에 의해 또한 2진 형태로 베이스와 비교된다. 중간합≥베이스일 경우, 비교기(1104)의 출력은 로직 "1"로 세트되며, 이로 인해 다음 오퍼레이션에 대한 캐리 래치(L)(1105)를 세트시키며, AND 게이트(1108)를 통해 베이스가 전파되도록 한다. 감산 회로(1110)는 조건부로 중간 합으로부터 베이스를 감산하는 부가 오퍼레이션의 마지막 단계를 수행한다. 따라서, 보조 회로(1100)는, a) 중간 합을 생성하기 위해 디지트를 가산하는 단계, b) 중간 합을 베이스와 비교하는 단계, c) 중간 합≥베이스인 경우, 중간 합으로부터 베이스를 감산하는 단계, 다음 디지트 쌍의 가산을 위해 캐리를 세트시키는 단계, d) 중간 합≥베이스인 경우, 중간 합으로부터 제로를 감산하는 단계, 다음 디지트 쌍의 가산을 위해 노 캐리를 세트시키는 단계, e) 모든 디지트 쌍에 대해 전술한 과정을 반복하는 단계를 포함하는 2개의 디지트를 가산하는 프로세스를 실행한다.9 shows the auxiliary circuit 1100 of the digit adder of the digit add / subtract circuit 1000. As shown in FIG. Adding two binary digits from a particular base is much simpler if the two digits and the base are represented in true binary format. Adding two 8-bit digits can be accomplished by using a number of standard logic macros configured to perform the function of circuit 1100. Referring to FIG. 9, an intermediate sum of Ni and N2i (input integer to be added) is generated by the 8-bit adder circuit 1102. The intermediate sum is then compared to the base by an 8-bit binary comparator 1104 also in binary form. If mid sum ≥ base, the output of comparator 1104 is set to logic "1", which sets carry latch (L) 1105 for the next operation, and the base propagates through AND gate 1108. Be sure to The subtraction circuit 1110 conditionally performs the last step of the addition operation of subtracting the base from the intermediate sum. Accordingly, the auxiliary circuit 1100 subtracts the base from the intermediate sum, a) adding a digit to produce an intermediate sum, b) comparing the intermediate sum with the base, and c) subtracting the base sum if intermediate sum≥base. Step, setting the carry for the addition of the next digit pair, d) subtracting zero from the middle sum, if intermediate sum≥base, setting the no carry for addition of the next digit pair, e) all A process of adding two digits is performed which includes repeating the above process for a digit pair.

제10도를 참조하면, 디지트 감산 회로(1200)가 도시되어 있다. 회로(1200)는 디지트 가산/감산 회로(1000)의 감산 오퍼레이션을 실현한다. 가산기 회로(1202)는 중간 합을 생성하기 위해 베이스 "BASE"를 N1i(정수 N1의 첫 번째 디지트)에 가산한다. 감산 회로(1204)는 중간 차를 생성하기 위해 중간 합으로부터 N2i(정수 N2의 첫 번째 디지트) 및 바로우-인 "BI"를 감산한다. 디지트의 첫 번째 쌍에 대해, 바로우-인 "BI"은 시퀸스 제어기(606)에 의해 제로로 세트된다. 그 후, 중간 차는 비교기(1206)에 의해 베이스 "BASE"와 비교된다. 중간 차≥베이스일 경우, 비교기(1206)는 로직 "1"을 출력하며, 이로 인해 다음 오퍼레이션을 위해 바로우 래치(L)(1208)를 리세트시키며, AND 게이트(1210)를 통해 베이스가 전파되도록 한다. 감산 회로(1212)는 조건부로 중간 차로부터 베이스를 감산하는 마지막 오퍼레이션을 수행한다. 바로우-아웃(borrow-out) "BO"은 또한 두 번째 패스가 필요한지와 "-" 부호를 발생시킬 것인지의 여부를 판단하기 위해 시퀸스 제어기(606)로 전송된다. 따라서, 회로(1200)는, a) 중간 합을 생성하기 위해 BASE를 N1i(제 1 정수의 첫 번째 디지트)에 가산하는 단계, b) 중간 차를 생성학 위해 중간 합으로부터 N2i(제 2 정수의 첫 번째 디지트) 및 바로우를 감산하는 단계, c) 중간 차와 BASE를 비교하는 단계, d) 중간 차≥베이스일 경우, 최종 차를 생성하기 위해 중간 차로부터 베이스를 감산하는 단계,다음 디지트 쌍의 감산을 위해 노 바로우를 세트하는 단계, e) 중간 차≥베이스일 경우, 중간 차로부터 제로를 감산하는 단계, 다음 디지트 쌍의 감산을 위해 바로우를 세트시키는 단계, f) 모든 디지트 쌍에 대해 전술한 과정을 반복하는 단계를 포함하는 두 디지트를 감산하기 위한 프로세스를 실행한다.Referring to FIG. 10, a digit subtraction circuit 1200 is shown. The circuit 1200 realizes a subtraction operation of the digit addition / subtraction circuit 1000. Adder circuit 1202 adds base "BASE" to N1i (the first digit of integer N1) to produce an intermediate sum. Subtraction circuit 1204 subtracts N2i (the first digit of integer N2) and the right-in "BI" from the intermediate sum to produce an intermediate difference. For the first pair of digits, the right-in "BI" is set to zero by the sequence controller 606. The intermediate difference is then compared to the base "BASE" by the comparator 1206. If intermediate difference ≥ base, comparator 1206 outputs a logic "1", which resets the right latch (L) 1208 for the next operation, allowing the base to propagate through the AND gate 1210. do. Subtraction circuit 1212 conditionally performs a final operation of subtracting the base from the intermediate difference. A bor-out "BO" is also sent to the sequence controller 606 to determine whether a second pass is needed and whether to generate a "-" sign. Thus, circuit 1200 may comprise: a) adding BASE to N1i (the first digit of the first integer) to produce an intermediate sum, b) N2i (the second integer) from the intermediate sum to generate the intermediate difference. Subtracting the first digit) and the barrow, c) comparing the intermediate difference with BASE, d) subtracting the base from the intermediate difference to produce the final difference, if intermediate difference ≥ base, of the next digit pair Setting the no barrow for subtraction, e) subtracting zero from the middle car if intermediate difference≥base, setting the barrow for subtraction of the next digit pair, f) as described above for all digit pairs A process for subtracting two digits is included which includes repeating the process.

제11도를 참조하면, 회로(1300)는 디지트 가산 및 감산 로직 회로(1100, 1200) 각각의 조합을 포함한다. 회로(1300)는 "Add/Sub"(가산/감산) 제어 라인을 구비한다. 가산 오퍼레이션이 수행되어야 할 때, AND 게이트(1302)로 입력되는 Add/Sub 제어 라인은 로직 "0"에 있게 된다. 감산 오퍼레이션이 수행되어야 할 때, Add/Sub 제어 라인은 로직 "1" 레벨에 있게 된다. 따라서, Add/sub가 로직 "0" 레벨에 있을 때, AND 게이트(1302)의 출력은 로직 "0"이며, Add/sub가 로직 "1"레벨에 있을 때, AND 게이트(1302)의 출력은 데이터 버스상의 베이스 데이터인 "BASE"이다. Add/sub 회로(1306)는 Add/sub 제어 라인에 의해 또한 제어된다.Referring to FIG. 11, the circuit 1300 includes a combination of digit add and subtract logic logic circuits 1100 and 1200, respectively. The circuit 1300 has an "Add / Sub" control line. When the add operation is to be performed, the Add / Sub control line input to AND gate 1302 is at logic " 0 ". When the subtraction operation is to be performed, the Add / Sub control line is at the logic "1" level. Thus, when Add / sub is at the logic "0" level, the output of AND gate 1302 is logic "0", and when Add / sub is at the logic "1" level, the output of AND gate 1302 is "BASE" which is the base data on the data bus. Add / sub circuit 1306 is also controlled by an Add / sub control line.

Add/sub 제어 라인이 로직 "1"에 있을 때, 회로(1304)는 제1중간 합을 생성하기 위해 베이스를 제 1 정수의 i번째 디지트에 가산한다. 그 후, 회로(1306)는 중간 차를 생성하기 위해 제 2 정수의 i번째 디지트를 제1중간 합으로부터 감산한다. 그 후, 중간 차는 비교기(1308)에 의해 베이스 "BASE"와 비교된다. 중간 차≥베이스일 경우, 비교기(1308)는 로직 "1"을 출력하며, 이로 인해 바로우 래치 "L"(1312)를 리세트시키는 선택 레지스터(1310)를 리셋팅하게 된다. 레지스터(131 0)로부터의 로직 "1" 출력은 베이스를 감산 회로(1316)으로 전송하기 위해 AND 게이트(1314)를 또한 인에이블시킨다. 그 후, 회로(1316)는 중간 차로부터 베이스를 감산한다. 중간 차가 베이스보다 작을 경우, 비교기(1308)는 로직 "0"을 출력하며, 이로 인해 선택 레지스터(1310)가 세트된다. 선택 레지스터(1310)가 세트되면, 선택 레지스터(1310)는 감산될 다음 디지트 쌍을 위해 바로우/캐리 래치 "L"(1312)을 세트시키는 신호를 출력한다. 래치(1312)가 세트되면, 바로우/캐리신호 "Co/Bo"는 시퀸스 제어기로 전파되며, 제 2 패스가 요구되는지와 "-" 부호를 발생시킬 것인지의 여부를 판단한다. 비교기(1308)로부터의 로직 "0" 출력은 또한 AND 게이트(1314)로 입력되며, 이로 인해 베이스가 감산 회로(14316)로 전파되는 것을 방지하게 된다. 따라서, 중간 차가 베이스보다 작을 때, 회로(1316)는 중간 차로부터 제로를 감산하게 된다.When the Add / sub control line is at logic "1", circuit 1304 adds the base to the i th digit of the first integer to produce a first intermediate sum. The circuit 1306 then subtracts the i th digit of the second integer from the first intermediate sum to produce an intermediate difference. The intermediate difference is then compared to the base "BASE" by the comparator 1308. If the difference is ≧ base, the comparator 1308 outputs a logic “1”, which resets the select register 1310 that resets the right latch “L” 1312. Logic " 1 " output from register 1131 also enables AND gate 1314 to transfer the base to subtraction circuit 1316. The circuit 1316 then subtracts the base from the intermediate difference. When the intermediate difference is smaller than the base, the comparator 1308 outputs a logic "0", which sets the select register 1310. Once the select register 1310 is set, the select register 1310 outputs a signal that sets the right / carry latch “L” 1312 for the next digit pair to be subtracted. When the latch 1312 is set, the right / carry signal "Co / Bo" is propagated to the sequence controller to determine whether a second pass is required and whether to generate a "-" sign. Logic “0” output from comparator 1308 is also input to AND gate 1314, which prevents the base from propagating to subtracting circuit 1416. Thus, when the intermediate difference is less than the base, the circuit 1316 subtracts zero from the intermediate difference.

Add/Sub 제어 라인이 로직 "0"에 있게 될 때, 회로(1304)는 제로를 제 1 정수의 i번째 디지트에 가산한다. 그 후, 회로(1306)는 최종 합을 생성하기 위해 제 1 및 제 2 정수의 i 번째 디지트를 가산한다. 그 후, 최종 합은 비교기(1308)에 의해 베이스 "BASE"와 비교된다. 최종 합≥베이스일 경우, 비교기(1308)는 바로우 래치 "L"(1312)를 세트시키는 선택 레지스터(1310)를 세트시키기 위해 로직 "1"을 출력하며, 이로 인해 다음 디지트 쌍에 가산을 위해 캐리 신호 Co를 세트시키게 된다. 비교기(1308)로부터 출력된 로직 "1"은 베이스를 감산 회로(1316)으로 전파하는 AND 게이트(1314)에 또한 입력된다. 그 후, 회로(1316)는 최종 합으로부터 베이스를 감산한다. 최종 합이 베이스보다 작을 경우, 비교기(1308)는 로직 "0"을 출력하며, 이로 인해 선택 레지스터(1310)가 리셋된다. 따라서, 바로우/캐리 래치 "L"(1312)는 가산될 다음 디지트 쌍에 대한 캐리를 세트시키지 않게 된다. 비교기(1308)로부터 출력된 로직 "0"은 AND 게이트(1314)로 또한 입력되며, 베이스가 감산 회로(1316)로 전파되지 못하게 한다. 따라서, 최종 합이 베이스보다 작을 때, 회로(1316)는 최종 합으로부터 제로를 감산한다.When the Add / Sub control line is at logic "0", circuit 1304 adds zero to the i th digit of the first integer. The circuit 1306 then adds the i th digit of the first and second integers to produce the final sum. The final sum is then compared by base comparator 1308 with the base "BASE". If the final sum≥base, the comparator 1308 outputs a logic "1" to set the select register 1310 which sets the right latch "L" 1312, thereby carrying it for addition to the next digit pair. The signal Co is set. The logic " 1 " output from the comparator 1308 is also input to the AND gate 1314 which propagates the base to the subtraction circuit 1316. The circuit 1316 then subtracts the base from the final sum. When the final sum is less than the base, the comparator 1308 outputs a logic "0", which resets the select register 1310. Thus, the right / carry latch “L” 1312 will not set the carry for the next digit pair to be added. Logic "0" output from comparator 1308 is also input to AND gate 1314 and prevents the base from propagating to subtraction circuit 1316. Thus, when the final sum is less than the base, circuit 1316 subtracts zero from the final sum.

따라서, 회로(1300)는, a) 가산 또는 감산 오퍼레이션이 수행될지를 판단하여, 가산일 경우, "Add/Sub"를 "0"으로 세트시키고, 그렇지 않을 경우, 감산일 경우, "Add/Sub"을 "1"로 세트시키는 단계, b) 가산 오퍼레이션이 수행되어야 할 경우, 제1정수 N1의 디지트에 제로를 가산하는 단계, c) 그렇지 않고, 감산 오퍼레이션이 수행되어야 할 경우, 제1중간 합을 생성하기 위해 제1정수 N1의 디지트에 베이스를 가산하는 단계, d) 가산 오퍼레이션이 수행되어야할 경우, 제2중간 합을 생성하기 위해 제2정수 N2의 디지트에 제1정수 N1의 디지트를 가산한 단계, e) 그렇지 않고, 감산 오퍼레이션이 수행되어야 할 경우, 중간 차를 생성하기 위해 제1중간 합으로부터 제1정수의 디지트를 감산하는 단계, f) 오퍼레이션이 가산이며, 제2중간 합≥베이스일 경우, 제2중간 합으로부터 제이스를 감산하는 단계, 다음 디지트 쌍의 가산을 위해 캐리 Co를 세트시키는 단계, g) 그렇지 않고, 제2중간 합이 베이스보다 작을 경우, 제2중간 합으로부터 제로를 감산하는 단계, 다음 디지트 쌍의 가산을 위해 노 캐리 Co를 세트시키는 단계, h) 오퍼레이션이 감산이며, 중간 차≥베이스일 경우, 중간 차로부터 베이스를 감산하는 단계, 감산될 다음 디지트 쌍을 위해 노 바로우 Bo를 세트시키는 단계, I) 그렇지 않고, 중간 차가 베이스보다 작을 경우, 중간 차로부터 제로를 감산하는 단계, 감산될 다음 디지트 쌍에 대해 바로우 Bo를 세트시키는 단계, j) 모든 디지트 쌍에 대해 전술한 과정을 반복하는 단계를 포함하는 두 개의 디지트를 가산하거나 감산하는 프로세스를 실행한다.Accordingly, the circuit 1300 determines whether a) an addition or subtraction operation is to be performed, and if it is an addition, sets "Add / Sub" to "0", otherwise, "Add / Sub". Setting "to" 1 ", b) adding zero to the digit of the first integer N1 if the addition operation should be performed, c) otherwise, if the subtraction operation should be performed, the first intermediate sum. Adding a base to the digit of the first integer N1 to generate a; d) if the addition operation is to be performed, add the digit of the first integer N1 to the digit of the second integer N2 to generate a second intermediate sum; One step, e) otherwise, if a subtraction operation is to be performed, subtracting the first integer digit from the first intermediate sum to generate an intermediate difference, f) the operation is addition, and the second intermediate sum≥base If, from the second intermediate sum Subtracting the case, setting carry Co for addition of the next digit pair, g) otherwise subtracting zero from the second intermediate sum, if the second intermediate sum is less than the base, Setting the no carry Co for addition, h) subtracting the base from the intermediate difference if the operation is subtractive and intermediate difference≥base, setting the no-baro Bo for the next digit pair to be subtracted, I ) Otherwise, if the intermediate difference is less than the base, subtracting zero from the intermediate difference, setting Baro Bo for the next digit pair to be subtracted, j) repeating the above process for all digit pairs Run the process of adding or subtracting two digits.

본 발명의 시스템은 디지트의 스트링 쌍을 가산하며 감산하도록 구성되었지만, 부가적이며 더 복잡한 오퍼레이션을 수행하도록 시스템이 변경될 수 있다. 또한, 전술한 특정 서브시스템이 다양한 집적 회로 기술을 통해 구현될 수 있다.The system of the present invention is configured to add and subtract string pairs of digits, but the system can be modified to perform additional and more complex operations. In addition, the specific subsystems described above may be implemented through various integrated circuit technologies.

본 발명의 프로세스 및 시스템은 아라이바 숫자 이외의 데이터의 프로세싱을 허용한다. 전술한 바와 같이, 데이터는 숫자, 알파벳, 부호, 심볼 또는 임의의 심볼을 포함하는 그룹으로부터 선택될 수 있다. 이는 임의의 컴퓨터 언어, 또는 임의의 구어용 또는 문어용 언어를 포함한다. 예를 들면, 데이터는 가산되거나 감산될 필요가 있는 두 개의 개인 이름일 수 있으며, 결과 데이터는 새로운 이름일 것이다. 이 프로세스가 반대로 될 경우, 사용자는 두 개의 원래의 이름을 도로 얻을 것이다. 본 발명을 이러한 방식으로 응용하면 메시지를 인코딩하거나 암호화하고, 그 후, 연속해서 이 데이터를 디코딩하는 데 매우 유용할 것이다. 이러한 데이터를 가로채는(intercepting) 사람은 이러한 데이터를 디코딩하는 방법을 알 수 없다. 그 이유는 먼저, 이들은 베이스가 사용되었다는 사실을 알 수 없으며, 또한 부동 베이스가 사용되었다는 사실을 알 수 없기 때문이다.The process and system of the present invention allow processing of data other than Arrai numbers. As mentioned above, the data may be selected from the group comprising numbers, alphabets, symbols, symbols or any symbol. It includes any computer language, or any spoken or written language. For example, the data may be two personal names that need to be added or subtracted, and the resulting data will be a new name. If this process is reversed, the user will get back the two original names. Application of the present invention in this manner will be very useful for encoding or encrypting a message and then subsequently decoding this data. The person who intercepts such data does not know how to decode such data. This is because, firstly, they do not know that the base is used, nor do they know that the floating base is used.

본 발명은 특정 바람직한 실시예와 관련하여 특별히 기술되었지만, 많은 변경, 수정 및 변화가 전술한 설명의 견지에서 본 기술 분야에 통상의 지식을 가진자에게 명백할 것이다. 따라서, 첨부된 특허청구의 범위는 본 발명의 진정한 범주 및 정신에 해당되는 한 임의의 변경, 수정 및 변화를 수용함이 고려되어야 한다.Although the present invention has been specifically described in connection with certain preferred embodiments, many variations, modifications and variations will be apparent to those of ordinary skill in the art in view of the foregoing description. Accordingly, the appended claims should be considered to embrace any alterations, modifications and variations as long as they fall within the true scope and spirit of the invention.

본 발명은 먼저 베이스를 공통 베이스로 변환시킬 필요 없이 임의의 베이스를 갖는 임의의 두 수를 가산하거나 감산하는 신규하고 향상된 프로세스 및 시스템을 제공하고, 또한 먼저 베이스를 공통 베이스로 변환시킬 필요없이 임의의 베이스를 갖는 수를 가산하거나 감산하는 신규하고 향상된 프로세스 및 시스템을 제공함에 있어서 프로세스가 실질적으로 임의의 크기 디지트에 대해 정확한 컴퓨터 결과를 생성시키고, 미리 공통 베이스로 변환할 필요가 없으며 이러한 가산 및 감산의 결과를 부동 소수점으로 변환시키기 않고 임의의 베이스를 갖는 수를 가산하거나 감산하는 신규하고 향상된 프로세스 및 시스템을 생성하고, 먼저 베이스를 지수화(exponentiation)를 사용하는 공통 베이스로 변환하지 않고 임의의 베이스를 갖는 수를 가산하거나 감산하는 신규하고 향상된 프로세스 및 시스템을 제공한다. 본 발명에서 제공되는 시스템 및 방법은 데이터의 세트를 인코딩하거나 프로세스하며, 프로세싱후 인코딩된 데이터가 결과 데이터를 디코딩할 수 있게 하고, 예를 들어, 컴퓨터 언어, 구어용(spoken) 언어, 문어용(written) 언어 등과 같은 임의의 언어의 데이터를 인코딩하거나 프로세스할 수 있도록 한다.The present invention provides a novel and improved process and system for adding or subtracting any two numbers with any base without first needing to convert the base to a common base, and also without having to first convert the base to a common base. In providing new and improved processes and systems for adding or subtracting numbers with a base, the process produces accurate computer results for virtually any size digit, and does not need to convert to a common base in advance, Create new and improved processes and systems for adding or subtracting numbers with arbitrary bases without converting the result to floating point, and first having any bases without converting the base to a common base using exponentiation. Add or subtract numbers Provides new and improved processes and systems. The systems and methods provided by the present invention encode or process a set of data, and allow post-processing encoded data to decode the resulting data, for example, computer language, spoken language, written language ( written) allows you to encode or process data in any language, such as language.

Claims (29)

데이터 시스템(a data system)에 있어서, (a) 베이스(a base)를 갖는 수 체게(a number system)에서 적어도 두 개의 수를 정의하는 데이터를 수신하기 위한 제1로직 회로(a first logic circuit) - 각 수는 적어도 하나의 디지트를 가지고, 상기 데이터는 원하는 베이스를 또한 정의하고, 상기 로직 회로는 제1중간 합(a first interim sum)을 생성하기 위해 상기 수의 디지트를 가산하고, 상기 로직 회로는 상기 제1중간 합을 상기 베이스와 비교하고, 상기 로직 회로는 신호가 제1상태를 가질 때 상기 중간 합이 상기 베이스보다 크거나 같은 경우 차(a difference)를 생성하기 위해 상기 제1중간 합으로부터 상기 원하는 베이스를 감산하며, 상기 제1로직 회로는 상기 중간 합이 상기 원하는 베이스보다 크거나 같은 경우 상기 차를 출력하거나, 상기 중간 합이 상기 원하는 베이스보다 작을 경우 상기 중간 합을 출력한다 - 와, (b) 상기 제1중간 합이 상기 원하는 베이스보다 크거나 같을 경우 후속하는 디지트-가산 오퍼레이션을 위한 상기 제1로직 회로로 입력될 캐리 신호(a carry signal)를 생성하고, 상기 제1중간 합이 상기 원하는 베이스보다 작을 경우 노 캐리(no carry) 신호를 생성하는 제2로직회로를 포함하는 데이터 시스템.A data system, comprising: (a) a first logic circuit for receiving data defining at least two numbers in a number system having a base; Each number has at least one digit, the data also defines a desired base, the logic circuit adds the digits of the number to produce a first interim sum, the logic circuit Compares the first intermediate sum with the base, and wherein the logic circuit generates the first intermediate sum to produce a difference when the intermediate sum is greater than or equal to the base when the signal has a first state. Subtracts the desired base from the first logic circuit and outputs the difference if the intermediate sum is greater than or equal to the desired base, or the intermediate sum is less than the desired base. Output the intermediate sum when the first intermediate sum is greater than or equal to the desired base, and a carry signal to be input to the first logic circuit for subsequent digit-add operation. And a second logic circuit for generating a no carry signal when the first intermediate sum is less than the desired base. 제1항에 있어서, 상기 제1로직 회로는 상기 베이스 및 상기 원하는 베이스를 갖는 상기 수체계에서 상기 수들을 정의하는 데이터를 수신하는 저장 매체(a storage medium)를 포함하는 데이터 시스템.2. The data system of claim 1, wherein the first logic circuit comprises a storage medium to receive data defining the numbers in the number system having the base and the desired base. 제2항에 있어서, 상기 제1로직 회로는, 상기 제1중간 합을 생성하기 위해 상기 수의 디지트를 가산하는 가산기 회로(an adder circuit)와, 상기 제1중간 합이 상기 원하는 베이스보다 크거나 같은 경우 제1상태를 가지며, 상기 중간 합이 상기 원하는 베이스보다 작을 경우 제2상태를 갖는 신호를 출력하는 비교기 회로(a comparator circuit)를 더 포함하는 데이터 시스템.3. The first logic circuit of claim 2 further comprising: an adder circuit that adds the number of digits to produce the first intermediate sum, and wherein the first intermediate sum is greater than the desired base; And a comparator circuit having a first state in the same case and outputting a signal having a second state when the intermediate sum is less than the desired base. 제3항에 있어서, 상기 제2로직회로는 상기 비교기에 응답하고 상기 가산기 회로에 접속된 래치(a latch)를 포함하되, 상기 래치는 상기 제1중간 합이 상기 원하는 베이스 보다 크거나 같을 경우 후속하는 디지트 가산 오퍼레이션을 위한 상기 가산기 회로로 입력될 캐리 신호를 생성하고 상기 제1중간 합이 상기 베이스보다 작을 경우 노 캐리 신호를 생성하는 데이터 시스템.4. The circuit of claim 3, wherein the second logic circuit comprises a latch responsive to the comparator and connected to the adder circuit, the latch being subsequent if the first intermediate sum is greater than or equal to the desired base. And a carry signal to be input to the adder circuit for a digit add operation, and generate a no carry signal when the first intermediate sum is less than the base. 제1항에 있어서, 상기 제1로직 회로는 상기 중간 합이 상기 원하는 베이스보다 크거나 같을 경우 상기 중간 합으로부터 제로(zero)를 감산하도록 구성된 데이터 시스템.2. The data system of claim 1, wherein the first logic circuit is configured to subtract zero from the intermediate sum when the intermediate sum is greater than or equal to the desired base. 제1항에 있어서, 상기 제1로직 회로는 각 수에서 디지트의 개수를 결정하기 위한 수단을 더 포함하는 데이터 시스템.2. The data system of claim 1 wherein the first logic circuit further comprises means for determining the number of digits in each number. 제1항에 있어서, 더 적은 디지트를 갖는 수에 대해 제로로 왼쪽 자리 맞춤하기 위한 수단을 더 포함하는 데이터 시스템.The data system of claim 1, further comprising means for left-justified to zero for a number having fewer digits. 제7항에 있어서, 상기 제1로직 회로는 다수의 메모리 로케이션을 포함하며, 상기 데이터 시스템은 더 많은 개수의 디지트를 갖는 수 및 더 적은 개수의 디지트를 갖는 수를 사전설정된 메모리 로케이션으로 저장하기 위한 수단을 더 포함하는 데이터 시스템.8. The system of claim 7, wherein the first logic circuit comprises a plurality of memory locations, the data system for storing a number having more digits and a number having fewer digits to a predetermined memory location. A data system further comprising means. 데이터 시스템에 있어서, (a) 베이스를 갖는 수 체계에서 적어도 두 개의 수를 정의하는 데이터를 수신하는 제1로직 회로 - 각 수는 값(a value) 및 적어도 하나의 디지트를 가지고, 상기 데이터는 원하는 베이스를 또한 정의하고, 상기 제1로직 회로는 중간 합을 생성하기 위해 상기 원하는 베이스를 더 많은 디지트 양 또는 더 큰 값을 갖는 수의 각 디지트에 가산하고, 상기 제1로직 회로는 중간 차를 생성하기 위해 상기 중간 합으로부터 상기 원하는 베이스를 감산하고, 상기 로직 회로는 상기 중간 차가 상기 원하는 베이스보다 크거나 같을 때 최종 차를 생성하기 위해 상기 중간 차로부터 상기 베이스를 감산하고, 상기 제1로직 회로는 상기 중간 차가 상기 원하는 베이스보다 크거나 같을 경우 상기 최종 차를 출력하거나 상기 중간 차가 상기 원하는 베이스보다 작을 경우 상기 중간 차를 출력한다 -, (b) 상기 중간 차가 상기 원하는 베이스보다 작을 경우 후속하는 디지트 감산 오퍼레이션을 위한 상기 제1로직 회로로 입력될 바로우 신호(a borrow signal)를 생성하고, 상기 중간 차가 상기 원하는 베이스보다 크거나 같은 경우 노캐리 신호를 생성하는 제2로직회로를 포함하는 데이터 시스템.A data system comprising: (a) a first logic circuit for receiving data defining at least two numbers in a number system having a base, each number having a value and at least one digit, said data being desired Also defines a base, the first logic circuit adds the desired base to each digit of the number having a larger digit amount or larger value to produce an intermediate sum, the first logic circuit generates an intermediate difference. Subtract the desired base from the intermediate sum to subtract the base circuit from the intermediate difference to produce a final difference when the intermediate difference is greater than or equal to the desired base. Output the last difference if the intermediate difference is greater than or equal to the desired base, or the intermediate difference is the desired bay Outputs the intermediate difference if smaller-(b) generates a borrow signal to be input to the first logic circuit for subsequent digit subtraction operations if the intermediate difference is smaller than the desired base, and And a second logic circuit for generating a no carry signal when the intermediate difference is greater than or equal to the desired base. 제9항에 있어서, 상기 제1로직 회로는 상기 사전설정된 베이스 및 상기 원하는 베이스를 갖는 상기 수 체계에서 상기 수들을 정의하는 상기 데이터를 수신하는 저장 매체를 포함하는 데이터 시스템.10. The data system of claim 9, wherein the first logic circuit comprises a storage medium to receive the data defining the numbers in the number system having the predetermined base and the desired base. 제10항에 있어서, 상기 제1로지 회로는, 상기 중간 합을 생성하기 위해 상기 원하는 베이스를 더 큰 양의 디지트 또는 더 큰 값을 갖는 수의 각 디지트에 가산하는 가산기 회로와, 상기 중간 차를 생성하기 위해 상기 가산기 회로에 응답하여 상기 중간 합으로부터 상기 원하는 베이스를 감산하는 제1감산기 회로와, 상기 중간 차가 상기 원하는 베이스보다 크거나 같을 경우 제1상태를 가지며, 상기 중간 차가 상기 원하는 베이스보다 작을 경우 제2상태를 갖는 신호를 출력하기 위한 비교기 회로를 더 포함하는 데이터 시스템.11. The apparatus of claim 10, wherein the first Lodge circuit comprises: an adder circuit that adds the desired base to each digit of a larger amount of digits or a larger value to produce the intermediate sum; A first subtractor circuit that subtracts the desired base from the intermediate sum in response to the adder circuit to produce a first state when the intermediate difference is greater than or equal to the desired base and the intermediate difference is less than the desired base. And a comparator circuit for outputting a signal having a second state in the case. 제11항에 있어서, 상기 제 1로직 회로는 상기 비교기에 응답하며 상기 제 1 감산기 회로에 접속된 래치를 더 포함하되, 상기 래치는 상기 중간 차가 상기 원하는 베이스보다 작을 경우 상기 제 1 감산기 회로로 입력될 바로우 신호를 생성하고, 상기 중간 차가 상기 원하는 베이스보다 크거나 같을 경우 노 캐리 신호를 생성하는 데이터 시스템.12. The circuit of claim 11 wherein the first logic circuit further comprises a latch responsive to the comparator and connected to the first subtractor circuit, the latch being input to the first subtractor circuit when the intermediate difference is less than the desired base. And a no carry signal if the intermediate difference is greater than or equal to the desired base. 제9항에 있어서, 상기 제1로직 회로는 상기 중간 차가 상기 베이스보다 작을 때 상기 중간 차로부터 제로를 감산하도록 구성되는 데이터 시스템.10. The data system of claim 9, wherein the first logic circuit is configured to subtract zero from the intermediate difference when the intermediate difference is less than the base. 제9항에 있어서, 상기 제1로직 회로는 각 수에서 디지트의 개수를 결정하기 위한 수단을 더 포함하는 데이터 시스템.10. The data system of claim 9, wherein the first logic circuit further comprises means for determining the number of digits in each number. 제14항에 있어서, 상기 제1로직 회로는 더 큰 값을 갖는 수를 결정하기 위한 수단을 더 포함하는 데이터 시스템.15. The data system of claim 14 wherein the first logic circuit further comprises means for determining a number having a larger value. 데이터 시스템이 있어서, (a) 베이스를 갖는 수 체계에서 적어도 두 개의 수를 정의하는 데이터를 수신하는 입력 회로 - 각 수는 적어도 하나의 디지트를 가지고, 상기 데이터는 오퍼레이션 정보 및 원하는 베이스를 또한 정의하며, 상기 오퍼레이션 정보는 가산 또는 감산 오퍼레이션이 수행되어야 할 지를 결정한다 - 와, (b) 상기 오퍼레이션이 감산일 경우 제1중간 합을 생성하기 위해 상기 수들중 한의 디지트에 상기 원하는 베이스를 가산하는 제1로직 회로 - 상기 제1로직 회로는 상기 오퍼레이션이 가산일 경우 제2중간 합을 생성하기 위해 대응하는 수의 디지트를 가산하고, 상기 제1로직 회로는 상기 오퍼레이션이 감산일 경우 제1차를 생성하기 위해 상기 제1중간 합으로부터 다른 수의 디지트를 감산하며, 상기 제1로직 회로는 상기 제2중간 합과 상기 원하는 베이스를 비교하여, 상기 제2중간 합이 상기 원하는 베이스보다 크거나 같을 경우 제1상태를 가지는 제어 신호를 출력하고 상기 제2중간 합이 상기 원하는 베이스보다 작을 경우 제2상태를 가지는 제어 신호를 출력하는 제어기를 포함한다 - 와, (c) 상기 제1로직 회로에 접속된 제2로직회로 - 상기 제2로직회로는 상기 오퍼레이션이 가산이며 상기 제어 신호가 제1상태를 가질 경우 제 2 차를 생성하기 위해 상기 제2중간합으로부터 상기 원하는 베이스를 감산하고, 상기 제1로직 회로의 비교기 회로는 상기 중간 차와 상기 원하는 베이스를 비교하고, 상기 비교기 회로 제어 신호는 상기 중간 차가 상기 원하는 베이스보다 크거나 같을 경우 제1상태를 가지고 상기 중간 차가 상기 원하는 베이스보다 작을 경우 제2상태를 가지며, 상기 제2로직회로는 상기 오퍼레이션이 감산이며 상기 제어신호가 제1상태를 가질 경우 상기 중간 차로부터 상기 원하는 베이스를 감산한다 - 와, (d) 후속하는 디지트 가산 또는 감산 오퍼레이션에 사용하기 위해 제1로직 회로로 입력될 캐리/바로우 신호를 생성하는 제 3 로직 회로 - 상기 캐리/바로우 신호는 상기 오퍼레이션이 가산이며 상기 제2중간 합이 상기 원하는 베이스보다 크거나 같을 경우 또는 상기 오퍼레이션이 감산이며 상기 중간 차가 상기 원하는 베이스보다 작을 경우 제1상태로 가지고, 상기 캐리/바로우 신호는 상기 오퍼레이션이 가산이며 상기 제2중간 합이 상기 원하는 베이스보다 작을 경우 또는 상기 오퍼레이션이 감산이며 상기 중간 차가 상기 원하는 베이스보다 크거나 같을 경우 제2상태를 갖는다 -를 포함하는 데이터 시스템.A data system comprising: (a) an input circuit for receiving data defining at least two numbers in a number system having a base, each number having at least one digit, said data also defining operation information and a desired base; The operation information determines whether an addition or subtraction operation should be performed; and (b) a first base that adds the desired base to one of the numbers to generate a first intermediate sum if the operation is subtraction. Logic Circuit-The first logic circuit adds a corresponding number of digits to produce a second intermediate sum when the operation is an add, and the first logic circuit generates a first order when the operation is subtracted. To subtract another number of digits from the first intermediate sum, the first logic circuit being equal to the second intermediate sum. Comparing a desired base, the control signal having a first state is output when the second intermediate sum is greater than or equal to the desired base, and the control signal having a second state is output when the second intermediate sum is less than the desired base. And (c) a second logic circuit connected to said first logic circuit, said second logic circuit comprising a second difference if said operation is addition and said control signal has a first state. Subtract the desired base from the second intermediate sum to produce, a comparator circuit of the first logic circuit compares the intermediate difference with the desired base, and the comparator circuit control signal is greater than the desired base. Is equal to or greater than or equal to the first state, and the intermediate difference is smaller than the desired base. Subtract the desired base from the intermediate difference if the previous operation is subtracting and the control signal has a first state-and (d) a carry to be input to the first logic circuit for use in subsequent digit addition or subtraction operations. A third logic circuit for generating a Barrow signal, wherein the carry / barrow signal is such that the operation is addition and the second intermediate sum is greater than or equal to the desired base or the operation is subtracted and the intermediate difference is less than the desired base. The second state if the operation is an addition and the second intermediate sum is less than the desired base or if the operation is subtracted and the intermediate difference is greater than or equal to the desired base. Has-a data system that includes. 제16항에 있어서, 상기 오퍼레이션이 가산이며 상기 제어 신호가 제1상태를 가질 경우 제 2 차를 출력하기 위한 출력 회로를 더 포함하되, 상기 출력 회로는 상기 오퍼레이션이 가산이며 상기 제어 신호가 제2상태를 가질 경우에는 상기 제2중간 합을 출력하고, 상기 오퍼레이션이 감산이며 상기 제어 신호가 제1상태를 가질 경우에는 상기 최종 차를 출력하며, 상기 오퍼레이션이 감산이며 상기 제어 신호가 제2상태를 가질 경우에는 제 1 차를 출력하는 데이터 시스템.17. The apparatus of claim 16, further comprising an output circuit for outputting a second difference when the operation is addition and the control signal has a first state, wherein the output circuit further includes the operation being added and the control signal being second. Outputting the second intermediate sum if the state is subtracted; outputting the final difference if the operation is subtracted; and if the control signal has the first state, outputting the final difference; Data system that outputs the primary if it has. 제16항에 있어서, 상기 입력은 각각 어드레스를 갖는 다수의 메모리 로케이션을 갖는 메모리를 포함하는 데이터 시스템.17. The data system of claim 16 wherein the input comprises a memory having a plurality of memory locations each having an address. 제16항에 있어서, 상기 제1로직 회로는, (a) 상기 제1중간 합을 생성하기 위한 가산기 회로와, (b) 상기 오퍼레이션이 감산일 경우 상기 제2중간 합을 생성하며, 상기 오퍼레이션이 감산일 경우 상기 제 1 차를 생성하기 위한 가산기-감산기를 포함하는 데이터 시스템.17. The apparatus of claim 16, wherein the first logic circuit comprises: (a) an adder circuit for generating the first intermediate sum; and (b) the second intermediate sum is generated if the operation is subtracted. And a subtracter-subtractor for generating the first difference if subtracted. 제16항에 있어서, 상기 제2로직회로는 상기 오퍼레이션이 가산일 경우 상기 제 2 차를 생성하며 상기 오퍼레이션이 감산일 경우 상기 최종 차를 생성하기 위한 감산기 회로를 포함하는 데이터 시스템.17. The data system of claim 16, wherein the second logic circuit includes a subtractor circuit for generating the second difference when the operation is an addition and generating the final difference when the operation is a subtraction. 제16항에 있어서, 상기 입력 회로는 각 수에서의 디지트의 개수를 결정하기 위한 수단을 포함하는 데이터 시스템.17. The data system of claim 16 wherein the input circuit includes means for determining the number of digits in each number. 제16항에 있어서, 상기 입력 회로는 각 수의 값을 결정하기 위한 수단을 더 포함하는 데이터 시스템.17. The data system of claim 16 wherein the input circuit further comprises means for determining a value of each number. 제22항에 있어서, 제로보다 작은 값을 갖는 최종 차에 마이너스(minus) 부호를 할당하기 위한 수단을 더 포함하는 데이터 시스템.23. The data system of claim 22, further comprising means for assigning a minus sign to a final difference having a value less than zero. 제18항에 있어서, 데이터 시스템 클럭 신호를 수신하기 위한 입력을 가지며, 순차적으로 각 수의 각 디지트를 상기 제1로직 회로로 전송하기 위해 상기 메모리의 메모리 로케이션 어드레스를 생성하는 시퀸스 제어기(a sequence controller)를 더 포함하는 데이터 시스템.19. The sequence controller of claim 18, having a input for receiving a data system clock signal, the sequence controller generating a memory location address of the memory for sequentially transferring each number of digits to the first logic circuit. The data system further includes). 제1, 9 또는 16항 중 어느 한 항에 있어서, 상기 수 체계에서의 상기 수들은 숫자, 단어, 문자, 부호, 인코딩된 데이터를 나타내는 스트링, 인코딩된 데이터를 나타내는 문자 및 숫자의 조합으로 된 스트링을 포함하는 그룹으로부터 선택되는 데이터 시스템.17. The string of claim 1, 9 or 16, wherein the numbers in the number system are numbers, words, letters, signs, strings representing encoded data, strings representing characters and encoded characters representing encoded data. Data system selected from the group comprising. 데이터 시스템이 있어서, (a) 베이스를 갖는 심볼 체계(a symbol system)에서 적어도 두 개의 심볼을 정의하는 데이터를 수신하는 제1로직 회로 - 각 심볼은 적어도 하나의 문자를 가지고, 상기 데이터는 원하는 베이스를 또한 정의하며, 상기 로직 회로는, 제1중간 합을 생성하기 위해 상기 심볼들의 상기 문자들을 가산하고, 제1중간 합을 베이스와 비교하고, 신호가 제1상태를 가질 때 상기 중간 합이 상기 베이스보다 크거나 같을 경우 차를 생성하기 위해 상기 제1중간 합으로부터 상기 원하는 베이스를 감산하며, 상기 제1로직 회로는 상기 중간 합이 상기 원하는 베이스보다 크거나 같을 경우 상기 차를 출력하거나, 상기 중간 합이 상기 원하는 베이스보다 작을 경우 상기 중간 합을 출력한다 - 와, (b) 상기 제1중간 합이 상기 원하는 베이스보다 크거나 같을 경우 후속하는 문자 가산 오퍼레이션을 위한 상기 제1로직 회로로 입력될 캐리 신호를 생성하고, 상기 제1중간 합이 상기 원하는 베이스보다 작을 경우 노 캐리 신호를 생성하는 제2로직회로를 포함하는 데이터 시스템.A data system comprising: (a) a first logic circuit for receiving data defining at least two symbols in a symbol system with a base, each symbol having at least one character, said data having a desired base; The logic circuit further adds the characters of the symbols to produce a first intermediate sum, compares the first intermediate sum with a base, and when the signal has a first state, Subtracts the desired base from the first intermediate sum to produce a difference if greater than or equal to a base, and the first logic circuit outputs the difference if the intermediate sum is greater than or equal to the desired base, or the intermediate Output the intermediate sum when the sum is less than the desired base, and (b) the first intermediate sum is greater than or equal to the desired base. Wu generate a carry signal is input to the first logic circuit for the subsequent character the addition operation that is, the first case is smaller than the first base is the desired intermediate sum no data system including a second logic circuit for generating the carry signal. 제26항에 있어서, 각 심볼은 숫자, 단어, 문자, 부호, 인코딩된 데이터를 나타내는 스트링, 인코딩된 데이터를 나타내는 문자 및 숫자의 조합으로 된 스트링을 포함하는 그룹으로부터 선택되는 데이터 시스템.27. The data system of claim 26, wherein each symbol is selected from the group comprising a number, a word, a letter, a sign, a string representing encoded data, a string of characters and combinations of numbers representing encoded data. 데이터 시스템에 있어서, (a) 베이스를 갖는 심볼 체계에서 적어도 두 개의 심볼을 정의하는 데이터를 수신하기 위한 제1로직 회로 - 각 심볼은 적어도 하나의 문자를 가지고, 상기 데이터는 원하는 베이스를 또한 정의하고, 상기 제1로직 회로는 중간 합을 생성하기 위해 원하는 베이스를 더 큰 양의 문자 또는 더 큰 값을 갖는 심볼의 각 문자에 가산하고, 상기 제1로직 회로는 중간 차를 생성하기 위해 상기 중간 합으로부터 상기 원하는 베이스를 감산하고, 상기 로직 회로는 상기 중간 차가 상기 원하는 베이스보다 크거나 같을 때 최종 차를 생성하기 위해 상기 중간 차로부터 상기 베이스를 감산하고, 상기 제1로직 회로는 상기 중간 차가 상기 원하는 베이스 보다 크거나 같을 경우 상기 최종 차를 출력하거나 상기 중간 차가 상기 원하는 베이스보다 작을 경우 상기 중간 차를 출력한다 - 와, (b) 상기 중간 차가 상기 원하는 베이스보다 작을 경우 후속하는 문자 감산 오퍼레이션을 위한 상기 제1로직 회로롤 입력될 바로우(a borrow) 신호를 생성하고, 상기 중간 차가 상기 원하는 베이스보다 크거나 같을 경우 노 캐리 신호를 생성하는 제2로직회로를 포함하는 데이터 시스템.A data system comprising: (a) a first logic circuit for receiving data defining at least two symbols in a symbol system having a base, each symbol having at least one character, said data also defining a desired base; The first logic circuit adds the desired base to each character of a symbol having a greater amount of quantity or a larger value to produce an intermediate sum, and the first logic circuit adds the intermediate sum to generate an intermediate difference. Subtracting the desired base from the logic circuit subtracting the base from the intermediate difference to produce a final difference when the intermediate difference is greater than or equal to the desired base, and the first logic circuit subtracts the desired difference from the intermediate difference. Outputs the final difference if it is greater than or equal to the base or the intermediate difference is less than the desired base Output the intermediate difference when the intermediate difference is less than the desired base, and generates a borrow signal to be input to the first logic circuit for subsequent character subtraction operations, the intermediate difference being And a second logic circuit for generating a no carry signal when greater than or equal to the desired base. 제28항에 있어서, 각 심볼은 숫자, 단어, 문자, 부호, 인코딩된 데이터를 나타내는 스트링, 인코딩된 데이터를 나타내는 문자 및 숫자의 조합으로 된 스트링을 포함하는 그룹으로부터 선택되는 데이터 시스템.29. The data system of claim 28, wherein each symbol is selected from the group comprising a string of numbers, words, characters, signs, strings representing encoded data, strings of characters and numerals representing encoded data.
KR1019960046030A 1995-12-19 1996-10-15 Process and system for adding or subtracting symbols in any base without converting to a common base KR100256463B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/575,105 US5673216A (en) 1995-12-19 1995-12-19 Process and system for adding or subtracting symbols in any base without converting to a common base
US8/575,105 1995-12-19

Publications (1)

Publication Number Publication Date
KR100256463B1 true KR100256463B1 (en) 2000-05-15

Family

ID=24298970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960046030A KR100256463B1 (en) 1995-12-19 1996-10-15 Process and system for adding or subtracting symbols in any base without converting to a common base

Country Status (2)

Country Link
US (2) US5673216A (en)
KR (1) KR100256463B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9510834D0 (en) * 1995-05-27 1995-07-19 Int Computers Ltd Decimal arithmetic apparatus and method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3222506A (en) * 1961-11-16 1965-12-07 Ibm Variable radix adder and subtractor
US3748450A (en) * 1971-10-18 1973-07-24 Comtec Ind Inc Numerical base translator
EP0044450B1 (en) * 1980-07-10 1985-11-13 International Computers Limited Digital adder circuit
JPS5743239A (en) * 1980-08-27 1982-03-11 Hitachi Ltd Data processor
US4528641A (en) * 1982-11-16 1985-07-09 The United States Of America As Represented By The Secretary Of The Air Force Variable radix processor
US4719590A (en) * 1984-08-14 1988-01-12 Aman James A Apparatus and method for performing addition and subtraction
WO1990002994A1 (en) * 1988-09-09 1990-03-22 Siemens Aktiengesellschaft Circuits for adding or subtracting bcd-coded or dual-coded operands
JPH05241792A (en) * 1992-02-27 1993-09-21 Nec Corp System and device for floating point addition and subtraction

Also Published As

Publication number Publication date
US5912831A (en) 1999-06-15
US5673216A (en) 1997-09-30

Similar Documents

Publication Publication Date Title
US4467317A (en) High-speed arithmetic compression coding using concurrent value updating
US4899273A (en) Circuit simulation method with clock event suppression for debugging LSI circuits
JPS6228895B2 (en)
JPH07248841A (en) Nonlinear function generator and format converter
US20200225921A1 (en) Lookup table optimization for programming languages that target synchronous digital circuits
EP0021283A1 (en) Digital data apparatus
JP2021517301A (en) Stochastic rounding logic
KR20060051572A (en) Arithmetic unit of arbitrary precision, operation method for processing data of arbitrary precision and electronic equipment
US6370667B1 (en) CRC operating calculating method and CRC operational calculation circuit
US5235538A (en) Semiconductor operation device with memory for storing operation codes connected from coefficients prior to performing an operation on an input signal
US5530664A (en) Method and apparatus for automatically designing logic circuit, and multiplier
US6745219B1 (en) Arithmetic unit using stochastic data processing
JP3811354B2 (en) Arithmetic processing semiconductor circuit and arithmetic processing method
US5574677A (en) Adaptive non-restoring integer divide apparatus with integrated overflow detect
KR920008269B1 (en) Digital word-serial multiplier circuit
KR100256463B1 (en) Process and system for adding or subtracting symbols in any base without converting to a common base
US4604723A (en) Bit-slice adder circuit
KR100229851B1 (en) Multiplier and digital filters
CN113222158B (en) Quantum state obtaining method and device
Sravya et al. Hardware posit numeration system primarily based on arithmetic operations
US5691930A (en) Booth encoder in a binary multiplier
Astola et al. New digit-serial implementations of stack filters
US4276608A (en) Fibonacci p-code parallel adder
Peon et al. A VLSI implementation of an arithmetic coder for image compression
US6578062B1 (en) Method and circuit for digital division

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
LAPS Lapse due to unpaid annual fee