TW201506779A - 邏輯運算裝置 - Google Patents
邏輯運算裝置 Download PDFInfo
- Publication number
- TW201506779A TW201506779A TW103119252A TW103119252A TW201506779A TW 201506779 A TW201506779 A TW 201506779A TW 103119252 A TW103119252 A TW 103119252A TW 103119252 A TW103119252 A TW 103119252A TW 201506779 A TW201506779 A TW 201506779A
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- output
- memory device
- unit
- input
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
- H03K19/21—EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Static Random-Access Memory (AREA)
Abstract
本發明提供一種邏輯運算裝置,該邏輯運算裝置能夠以較小規模的電路結構在較短時間內進行運算處理。本發明係一種邏輯運算裝置,包括記憶體裝置12,該記憶體裝置12接收N(N為大於等於2的整數)位元長度的位元串的輸入,在所輸入的該位元串所表示的位址上儲存對照表,其中,該對照表是存放多位元長度之資料而成,該多位元長度之資料的一部分含有表示所輸入的該位元串所含有之各位元間的邏輯運算結果的位元,該邏輯運算裝置存取記憶體裝置12,輸出存放在所接收的位元串所表示的位址上的資料所含有的位元。
Description
本發明係關於一種邏輯運算裝置,其進行在所輸入的位元串中包含之位元間的邏輯運算。
伴隨著資訊處理技術、資訊通信技術的發展和普及,要求更高速且更大容量的資訊處理技術。例如近年來,在資訊處理時的糾錯處理中要求能夠進行更多位元長度之資料的糾錯。
在進行該糾錯時,由於進行輸入位元的同位元檢查等,而必須求出所輸入的位元間的邏輯互斥或(XOR或者EOR)。以往,關於多位元長度之資料之邏輯互斥或的運算裝置是將2輸入邏輯互斥或電路加以組合而構成。例如,圖11顯示計算32位元長度的邏輯互斥或的邏輯運算裝置之例。
如圖11所例示,該計算32位元長度的邏輯互斥或的邏輯運算裝置,包括四個8輸入邏輯互斥或電路100以及三個2輸入邏輯互斥或電路200。又,8輸入邏輯互斥或電路100在內部包括七個2輸入邏輯互斥或電路200。
此外,非專利文獻1中公開了多輸入(3輸入)的邏輯互斥或閘之例。
【先前技術文獻】
【非專利文獻】
【非專利文獻1】inet:”74LVC1G386 3-input EXCLUSIVE-OR gate”、[online]、2007年9月3日、[2013年7月16日瀏覽]、網際網路<URL:http://http://www.jp.nxp.com/documents/data_sheet/74LVC1G386.pdf>
然而,近年來逐漸要求進行多位元長度之資料處理,而有下述問題:2輸入邏輯互斥或電路的組合使得電路規模變大,又因構成為多層閘導致運算處理時間也變長。
本發明有鑒於上述實際情況,其目的之一,在於提供一種邏輯運算裝置,即使是多位元長度之資料也能夠以較小規模的電路結構在較短時間內進行運算處理。
用於解決上述以往例的問題的本發明是一種邏輯運算裝置,包括:記憶體裝置,其接收N(N為大於等於2的整數)位元長度的位元串的輸入,在所輸入的上述位元串所表示的位址上儲存對照表,其中,該對照表是存放多位元長度之資料而成,該多位元長度之資料的一部分含有表示所輸入的該位元串所含有之各
位元間的邏輯運算結果的位元;以及輸出單元,其存取上述記憶體裝置,輸出存放在所接收的上述位元串所表示的位址上的資料所含有的位元。
這樣,即使是多位元長度之資料,也能夠以較小規模的電路結構且無須多層閘,而在較短時間內進行運算處理。
又,在此,也可以在存放於上述記憶體裝置中的資料中包含所輸入的上述位元串所含有之各位元間的邏輯運算結果及其反轉位元,上述輸出單元選擇性地輸出該位元間的邏輯運算結果及其反轉位元的其中之一。
藉此,如果多層地構成並且輸出單元根據前層的運算結果選擇邏輯運算結果及其反轉位元的其中之一,即使對於更長的位元長度的資料也能夠以較小規模的電路結構在較短時間內進行運算處理。
進一步地,也可以還包括分割單元,該分割單元接收M(M為大於N的整數)位元長度的位元串的輸入,從該位元串提取N位元的位元串,並將所提取的該N位元的位元串分時地輸出到上述記憶體裝置,在分時地輸出上述N位元的位元串的時序,上述輸出單元使用前次輸出的位元來選擇性地輸出存取記憶體裝置而取出的位元間的邏輯運算結果及其反轉位元的其中之一。
藉由如此分時地使用電路,能夠以更小規模的電路結構來進行運算處理。
又,存放於上述記憶體裝置中的邏輯運算結果也可以是輸入位元串所含有之各位元間的邏輯互斥或的運算結果。
根據本發明,能夠以較小規模的電路結構在較短時間內進行運算處理。
1‧‧‧邏輯運算裝置
10、10_1~10_n‧‧‧邏輯運算單元
11、11_1~11_n‧‧‧輸入緩衝部(輸入緩衝器)
12、12_1~12_n‧‧‧記憶體裝置
13、13_1~13_n、31‧‧‧輸出部
20‧‧‧三態緩衝部
21、21-1~21-N‧‧‧三態緩衝器
25‧‧‧時脈供給部
30、40‧‧‧輸出單元
32‧‧‧正反器電路部
33‧‧‧切換部
41‧‧‧選擇器部
41a~41d‧‧‧選擇器
51‧‧‧邏輯反轉電路
100‧‧‧8輸入邏輯互斥或電路
200‧‧‧2輸入邏輯互斥或電路
CLK‧‧‧時脈信號
d、d1~d8‧‧‧信號線
φ0~φn‧‧‧副時脈信號
【圖1】是表示本發明的實施形態之邏輯運算裝置的結構例的方塊圖。
【圖2】是表示本發明的實施形態之邏輯運算裝置所具備的對照表的內容例的說明圖。
【圖3】是表示本發明的實施形態之邏輯運算裝置所具備的對照表的另一個內容例的說明圖。
【圖4】是表示本發明的實施形態的另一例之邏輯運算裝置的結構例的方塊圖。
【圖5】是表示本發明的實施形態的再一例之邏輯運算裝置的結構例的方塊圖。
【圖6】是表示本發明的實施形態之邏輯運算裝置的時脈供給部所輸出的信號例的時序圖。
【圖7】是表示本發明的實施形態的又一例之邏輯運算裝置的結構例的方塊圖。
【圖8】是表示本發明的實施形態之邏輯運算裝置所具備的又一個對照表的內容例的說明圖。
【圖9】是表示本發明的實施形態之邏輯運算裝置的輸出層的其它電路例的說明圖。
【圖10】是表示使用了本發明的實施形態之邏輯運算裝置的進行與更多位元長度的位元串有關的邏輯運算的裝置例的說明圖。
【圖11】是表示以往的計算32位元長度的邏輯互斥或的邏輯運算裝置例的說明圖。
以下參照附圖來說明本發明的實施形態。本發明的實施形態之邏輯運算裝置1如圖1所例示,包括至少一個邏輯運算單元10。又,該邏輯運算單元10基本上構成為包括輸入緩衝部11、記憶體裝置12以及輸出部13。
輸入緩衝部11接收N(N為大於等於2的整數)位元長度的位元串的輸入,並將該位元串所表示的信號提供給記憶體裝置12的位址匯流排。即,在此例中,N亦相當於記憶體裝置12的位址匯流排寬度。
記憶體裝置12,具體而言是非揮發性記憶體或SRAM(Static Random Access Memory:靜態隨機存取記憶體)等半導體記憶體,具備2N位元×L位元(L為大於等於2的整數)的記憶體單元。該記憶體裝置12在從該輸入緩衝部11輸入的位元串所表示的位址上存放有對照表,該對照表是存放多位元長度之資料而成,該多位元長度之資料的一部分含有表示所輸入的該位元串所含有之各位元間的邏輯運算結果的位元。在以下例中,以在由一個位址所確定的位置處存放L=8位元的資料的情形來進行說明。
具體而言,該對照表如圖2所例示,在N=8位元長度的位元串「00000000」所表示的位址上存放資料「0XXXXXXX」(在此,X可以是不定值),該資料「0XXXXXXX」的MSB(最高位位元)含有該位元串「00000000」的邏輯互斥或的運算結果、即「0」。又,在位元串「00000001」所表示的位址上存放資料「1XXXXXXX」(X可以是不定值),該資料「1XXXXXXXXX」的MSB(最高位位元)含有該位元串「00000001」的邏輯互斥或的運算結果、即「1」。
輸出部13讀出記憶體裝置12所存放的資料之中,存放在輸入緩衝部11所輸出的位元串所表示的位址上的資料。該輸出部13選擇性地輸出該讀出的資料之中,含有上述邏輯運算結果的位元。在本實施形態的上述例中,MSB含有邏輯運算結果,因此該輸出部13讀出記憶體裝置所存放的資料之中,存放在輸入緩衝部11所輸出的位元串所表示的位址上的資料,並輸出該資料中的MSB的位元。
又,在本實施形態的另一例中,記憶體裝置12在從該輸入緩衝部11輸入的位元串所表示的位址上存放有對照表,該對照表是存放多位元長度之資料而成的,該多位元長度之資料的一部分含有表示該輸入的位元串所含有之各位元間的邏輯運算結果的位元及其反轉位元。
具體而言,該對照表如圖3所例示,在N=8位元長度的位元串「00000000」所表示的位址上存放有資料「01XXXXXX」(在此,X可以是不定值),該資料「01XXXXXXX」的MSB(最高位位元)含有該位元串「00000000」的邏輯互斥或的運算結果、即「0」,該資料「01XXXXXX」的次高位元含有該運算結果的反轉位元、即「1」。又,在位元串「00000001」所表示的位址上存放有資料「10XXXXXX」(X可以是不定值),該資料「10XXXXXX」的MSB(最高位位元)
含有該位元串「00000001」的邏輯互斥或的運算結果、即「1」,該資料「10XXXXXX」的次高位元包含其反轉位元、即「0」。
在本例中,輸出部13從外部接收1位元的信號的輸入。而且,輸出部13讀出記憶體裝置12所存放的資料之中,存放在輸入緩衝部11所輸出的位元串所表示的位址上的資料,根據從外部輸入的1位元的信號是「0」還是「1」來選擇性地輸出該資料中的上述邏輯運算結果及其反轉位元中的其中之一。在本實施形態的一例中,該輸出部13在從外部輸入的1位元的信號為「0」時,讀出記憶體裝置所存放的資料之中,存放在輸入緩衝部11所輸出的位元串所表示的位址上的資料,輸出該資料中的MSB的位元。又,輸出部13在從外部輸入的1位元的信號為「1」時,讀出記憶體裝置所存放的資料之中,存放在輸入緩衝部11所輸出的位元串所表示的位址上的資料,輸出該資料中的MSB的下一位元(存放有邏輯運算結果的反轉位元的位元)。
本實施形態基本上具備有以上的結構,並且運作如下例。在本實施形態的以下例中,如圖4所例示,設為具備多個邏輯運算單元10_1、10_2、......、10_n。又,第i個邏輯運算單元10_i的輸出部13_i接收第i-1個邏輯運算單元10_i-1的輸出位元作為來自外部的輸入。此外,開頭的邏輯運算單元10_1的輸出部13_1設為不接收來自外部的輸入(或者將來自外部的輸入固定為「0」等),輸出記憶體裝置12所存放的資料之中,表示邏輯運算結果的位元(在上述例中為MSB)。
又,在本實施形態的此例中,接收8×n(記憶體裝置12的位址匯流排寬度的整數n倍)位元長度的資料D(將其第i個位元設為bi(i=1,2,......,8n))的輸入作為邏輯互斥或的計算對象。然後,從MSB側(或者LSB側)依序逐次將8個位元(記憶體
裝置12的位址匯流排寬度)分別輸出到邏輯運算單元10_1、10_2、......、10_n的緩衝部11_1、11_2、......、11_n。
邏輯運算單元10_1的輸出部13_1讀出記憶體裝置12_1所存放的資料之中,存放在輸入到輸入緩衝器11_1的8位元長度的位元串(b1、b2、......、b8)所表示的位址上的資料。然後,輸出該讀出的資料所含有的邏輯運算結果(在此,設為所輸入的8位元長度的位元串的邏輯互斥或的運算結果)的位元。
下一邏輯運算單元10_2的輸出部13_2讀出記憶體裝置12_2所存放的資料之中,存放在輸入到輸入緩衝器11_2的8位元長度的位元串(b9、b10、......、b16)所表示的位址放的資料。又,該輸出部13_2根據前層的邏輯運算單元10_1的輸出部13_1所輸出的位元來選擇輸出該讀出的資料所含有的邏輯運算結果的位元及其反轉位元中的其中之一。具體而言,輸出部13_2在輸出部13_1所輸出的位元為「0」時,輸出所讀出的資料所含有的邏輯運算結果。又,輸出部13_2在輸出部13_1所輸出的位元為「1」時,輸出邏輯運算結果的反轉位元。
以下,第i個邏輯運算單元10_i的輸出部13_i讀出記憶體裝置12_i所存放的資料之中,存放在輸入到輸入緩衝器11_i的8位元長度的位元串(b8(i-1)+1、b8(i-1)+2、......、b8i)所表示的位址上的資料。又,該輸出部13_i根據前層的邏輯運算單元10_i-1的輸出部13_i-1所輸出的位元來選擇輸出該讀出的資料所含有的邏輯運算結果的位元及其反轉位元的其中之一。具體而言,輸出部13_i在輸出部13_i-1所輸出的位元為「0」時,輸出所讀出的資料所含有的邏輯運算結果。又,輸出部13_i在輸出部13_i-1所輸出的位元為「1」時,輸出邏輯運算結果的反轉位元。
而且,第n個邏輯運算單元10_n的輸出部13_n讀出記憶體裝置12_n所存放的資料中,存放在輸入到輸入緩衝器11_n的8位元長度的位元串(b8(n-1)+1、b8(n-1)+2、......、b8n)所表示的位址上的資料。又,該輸出部13_n根據前層的邏輯運算單元10_n-1的輸出部13_n-1所輸出的位元選擇輸出該讀出的資料所含有的邏輯運算結果的位元及其反轉位元中的其中之一。具體而言,輸出部13_n在輸出部13_n-1所輸出的位元為「0」時,輸出所讀出的資料所含有的邏輯運算結果。又,輸出部13_n在輸出部13_n-1所輸出的位元為「1」時,輸出邏輯運算結果的反轉位元。
這樣,使得第n個邏輯運算單元10_n的輸出部13_n輸出8×n位元長度的資料D所含有之各位元的邏輯運算結果(在此例中為邏輯互斥或)。
並且,在此描述並聯使用多個邏輯運算單元10,亦即記憶體裝置12之例,但是本實施形態並不限於此。在本實施形態的另一例中,也可以分時地利用記憶體裝置12。此例之本發明的實施形態之邏輯運算裝置1如圖5所例示,構成為包括n個三態緩衝部20、記憶體裝置12、時脈供給部25以及輸出單元30。又,三態緩衝部20各自包括N(在此例中為N=8)個三態緩衝器21,輸出單元30包括輸出部31、正反器電路部32以及切換部33。在此,對於與已說明者相同結構者標註相同的元件符號並省略說明。此外,在此例中設為在記憶體裝置12中存放有圖3所例示的資料。
三態緩衝器21各自具備輸入端子X、輸出端子Y以及閘極端子G。該三態緩衝器21在閘極端子G的輸入為「0」的期間,無論輸入端子X有何種輸入,都將
輸出端子Y的狀態設為高阻抗狀態「Z」。輸出端子Y成為高阻抗的三態緩衝器21,從該輸出端子Y的連接目的地觀察而言,等同於絕緣的狀態(連接被切斷的狀態)。
在本實施形態的此例中,8n個三態緩衝器21以第1個三態緩衝器21_1至第8個三態緩衝器21_8的群組、第9個三態緩衝器21_9至第16個三態緩衝器21_16的群組......的方式分成逐次8個之群組。而且,從時脈供給部25向屬於同一群組的三態緩衝器21的閘極端子G輸入相同的信號。關於該信號將後述。又,從成為邏輯運算的對象的8×n位元長度的資料D的MSB側(或者LSB側)依序將各位元的值輸入到第i個三態緩衝器21_i的輸入端子X_i。
又,第i個三態緩衝器21_i的輸出端子Y_i連接於記憶體裝置12的位址匯流排中的第(i mod 8)個針腳。在此(i mod k)意指i除以k時的餘數。
時脈供給部25如圖6所示,產生定期地反復進行上昇和下降的時脈信號CLK並將其輸出。又,該時脈供給部25產生n個(n是將成為邏輯運算的對象的位元數8n除以作為記憶體裝置12的位址匯流排寬度的8所得到的值)的副時脈信號φi(i=1、2、......、n)。該副時脈信號φi,已設為在時脈信號CLK從既定的時刻起第j次上昇時i=(j mod n)+1的副時脈信號φi上昇,在時脈信號CLK第j次下降時i=(j mod n)+1的副時脈信號φi下降。此時,作為i≠(j mod n)+1的副時脈信號φi是維持Low的狀態。又,時脈供給部25產生如下的副時脈信號φ0。即,該φ0在時脈信號CLK第j次上昇之際而(j mod n)=0時上昇,並在此之後的時脈信號CLK的第n/2次上昇或者第(n-1)/2次下降時下降,且下降直到時脈信號CLK第n次上昇之前。圖6中例示了在n=4的情況下的副時脈信號φ1、φ2、φ3、φ4以及φ0。
在此,時脈供給部25以將副時脈信號φ1提供給第1個三態緩衝器21_1~第8個三態緩衝器21_8、將副時脈信號φ2提供給第9個三態緩衝器21_9~第16個三態緩衝器21_16,如此將副時脈信號φ([(p-1)/8]+1)提供給8個三態緩衝器21_p。(p為p≧1之整數)在此,[*]係意指取不超過*的最大整數。
藉由這些三態緩衝器21和時脈供給部25的動作來實現分割單元,該分割單元接收M(M為大於N的整數)位元長度的位元串的輸入,從該位元串提取N位元的位元串,並將所提取的該N位元的位元串分時地向記憶體裝置12輸出。
輸出單元30的輸出部31在從時脈供給部25輸入的時脈信號CLK下降且副時脈信號φn(n是將成為邏輯運算的對象的位元數8n除以作為記憶體裝置12的位址匯流排寬度的8所得到的值)不下降的時序,接收正反器電路部32所輸出的1位元的信號的輸入並保持在緩衝器(未圖示)中。而且,輸出部31其次在時脈信號CLK上昇的時序,讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21所輸出的位元串所表示的位址上的資料。輸出部31根據保持在緩衝器中的1位元的信號是「0」還是「1」來選擇性地輸出該讀出的資料中的上述邏輯運算結果及其反轉位元的其中之一。
在本實施形態的一例中,該輸出部31在保持於緩衝器中的位元為「0」時,將從記憶體裝置12讀出的資料中的MSB的位元(邏輯運算結果)輸出到切換部33。又,該輸出部31在保持於緩衝器中的位元為「1」時,將從記憶體裝置12讀出的資料中的MSB的下一位元(存放了邏輯運算結果的反轉位元的位元)輸出到切換部33。輸出部31持續進行該輸出直到其次時脈信號CLK下降為止。
又,該輸出部31控制後面說明的切換部33。具體而言,在時脈供給部25所輸出的副時脈信號φn(n是將成為邏輯運算的對象的位元數8n除以作為記憶體裝置12的位址匯流排寬度的8所得到的值)上昇的時序,輸出部31將後面說明的切換部33的輸出目的地設定為輸出至外部。而且,其次在時脈供給部25所輸出的時脈信號CLK上昇的時序,將切換部33的輸出目的地設定為正反器電路部32。
並且,在時脈供給部25所輸出的副時脈信號φn下降的時序,輸出部31無論正反器電路部32的輸出為何都在緩衝器中保持「0」的位元。以下將該動作稱為輸出部的重置動作。
正反器電路部32例如構成為包括D型的正反器電路。具體而言,在該正反器電路24中D端子(輸入端子)接入輸出部31的輸出。又,C端子(時脈端子)從時脈供給部25接收時脈信號CLK的輸入。而且,該正反器電路部32在時脈信號CLK上昇的時序保持輸入到作為輸入端子的D端子的位元並在輸出端子Q輸出該位元的信號。在時脈信號CLK下降的時序也持續進行該輸出。又,從該輸出端子Q輸出的位元,作為來自正反器電路部32的輸出而輸入到輸出部31。
切換部33接受來自輸出部31的控制,從而將從輸出部31輸入的1位元的資訊選擇性地輸出到正反器電路部32以及外部中的某一個。
其次說明本實施形態的此例之邏輯運算裝置1的動作。在此,例如接收M=N×n(記憶體裝置12的位址匯流排寬度N的整數n倍)位元長度的資料D(將其第i個位元設為bi(i=1,2,......,N×n))的輸入作為邏輯運算、即邏輯互斥或的計算
對象。而且,從MSB側(或者LSB側)依序將第i個位元分別輸入到第i個三態緩衝器21_i。
而且,邏輯運算裝置1如下地進行動作。即,當進行了輸出部的重置動作時(圖6的時刻t0),輸出部31將「0」的位元保持在緩衝器中。其次在時脈供給部25所輸出的時脈信號CLK上昇的時序(圖6的時刻t1),三態緩衝器21_1~21_8將已輸入的位元b1、b2、......、b8提供給記憶體裝置12的位址匯流排。
輸出部31讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21_1~21_8所輸出的位元串所表示的位址上的資料。此時,輸出部31在緩衝器保持著「0」的位元,因此該輸出部31將從記憶體裝置12讀出的資料中的MSB的位元(邏輯運算結果)作為第一次的運算結果R1進行輸出。該輸出R1經由切換部33輸出到正反器電路部32並保持在正反器電路部32中。
其次當到達時脈供給部25所輸出的時脈信號CLK下降的時序(圖6的時刻t2)時,三態緩衝器21_1~21_8的輸出成為高阻抗。而且,輸出部31從正反器電路部32接收前次的運算結果R1並保持在緩衝器中。
其次在時脈供給部25所輸出的時脈信號CLK上昇的時序(圖6的時刻t3),三態緩衝器21_9~21_16將已輸入的位元b9、b10、......、b16提供給記憶體裝置12的位址匯流排。
輸出部31讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21_9~21_16所輸出的位元串所表示的位址上的資料。而且,輸出部31在該緩衝
器保持了「0」的位元時(運算結果R1為「0」時),將從記憶體裝置12讀出的資料中的MSB的位元(邏輯運算結果)作為第二次的運算結果R2進行輸出。又,輸出部31在該緩衝器保持了「1」的位元時(運算結果R1為「1」時),將從記憶體裝置12讀出的資料中的MSB的下一位元(邏輯運算結果的反轉位元)作為第二次的運算結果R2進行輸出。該輸出R2經由切換部33輸出到正反器電路部32並保持在正反器電路部32中。
以下同樣地進行動作,在時脈供給部25所輸出的副時脈信號φn上昇的時序,輸出部31將切換部33的輸出目的地設定為輸出至外部。又,此時輸出部31讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21_(8×(n-1)+1)~21_(8n)所輸出的位元串所表示的位址上的資料。而且,輸出部31在該緩衝器保持了「0」的位元時(運算結果Rn-1為「0」時),將從記憶體裝置12讀出的資料中的MSB的位元(邏輯運算結果)作為運算結果R進行輸出。又,輸出部31在該緩衝器保持了「1」的位元時(運算結果Rn-1為「1」時),將從記憶體裝置12讀出的資料中的MSB的下一位元(邏輯運算結果的反轉位元)作為運算結果R進行輸出。該輸出經由切換部33提供給外部。
其次在時脈信號CLK下降的時序,輸出部31進行輸出部的重置動作,其次在時脈信號CLK再次上昇的時序,將切換部33的輸出目的地設定為正反器電路部32。
如此,在本實施形態的此例中,輸出部31作為如下單元而發揮功能:在分時地輸出N位元的位元串的時序,使用前次輸出的位元來選擇性地輸出存取記憶體裝置而取出的位元間的邏輯運算結果及其反轉位元的其中之一。
如此,在第n次時輸出部31將8×n位元長度的資料D所含有之各位元的邏輯運算結果(在此例中為邏輯互斥或)作為運算結果R進行輸出。
並且,此種分時地進行運算的情況下的輸出單元之例並不限於該例。即,記憶體裝置12的各位址所能存放的資料是8位元,因此還能夠靈活利用該位寬來如下地構成。
本實施形態的再一例之邏輯運算裝置1如圖7所例示,構成為包括8×n個(在此設為記憶體裝置12的位址匯流排寬度N=8)三態緩衝器21(與圖5所例示者同樣地逐次8個構成一個三態緩衝部20)、記憶體裝置12、時脈供給部25以及輸出單元40。又,輸出單元40構成為包括四個(記憶體裝置12的資料匯流排寬度L的1/2)選擇器部41a、b、c、d。在此,對於與已說明者相同結構的部分標註相同的元件符號並省略說明。
又,在此例中的記憶體裝置12中,如圖8所例示,在8位元長度的位址A(以位元串a1、a2、......、a8來表示)所示的位置處從MSB側起重複地配置有基於位元串a1、a2、......、a8的邏輯運算結果與其反轉位元的群組。即,在此例中,在各位址的位置所存放的資料的奇數位元格中分別存放邏輯運算結果,在偶數位元格中則存放奇數位元格的位元之反轉位元。
輸出單元40的選擇器部41a連接有記憶體裝置12的資料匯流排中的作為MSB的d1和作為MSB的下一位元的d2的各信號線。又,該選擇器部41a接收從外部輸入的1位元的信號。
而且,在從時脈供給部25輸入的副時脈信號φ1上昇的時序,選擇器部41a讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21所輸出的位元串所表示的位址上的資料並進行鎖存。該選擇器部41a根據從外部接收的1位元的信號是「0」還是「1」來選擇性地鎖存並輸出該讀出的資料中的表示上述邏輯運算結果的MSB的1個位元以及表示其反轉位元的MSB的下一位元的其中之一。
在此例中,選擇器部41a在從外部接收的位元為「0」時,選擇從記憶體裝置12讀出的資料中的MSB的位元(信號線d1所輸出的邏輯運算結果)進行鎖存、輸出。又,該選擇器部41a在從外部接收的位元為「1」時,選擇從記憶體裝置12讀出的資料中的MSB的下一位元(表示邏輯運算結果的反轉位元的信號線d2的輸出)進行鎖存、輸出。
又,選擇器部41b連接有記憶體裝置12的資料匯流排中的MSB側的d3與作為其下一位元的d4的各信號線。又,該選擇器部41b接收選擇器部41a所輸出的1位元的信號。
而且,在從時脈供給部25輸入的副時脈信號φ2上昇的時序,選擇器部41b讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21所輸出的位元串所表示的位址上的資料並進行鎖存。該選擇器部41b根據從選擇器部41a接收的1位元的信號是「0」還是「1」來選擇性地鎖存並輸出該讀出的資料中的表示上述邏輯運算結果的MSB側的1個位元以及表示其反轉位元的下一位元的其中之一。
在此例中,選擇器部41b在從選擇器部41a接收的位元為「0」時,選擇從記憶體裝置12讀出的資料中的MSB側的位元(信號線d3所輸出的邏輯運算結果)進行鎖存、輸出。又,該選擇器部41b在從選擇器部41a接收的位元為「1」時,選擇從記憶體裝置12讀出的資料中的上述信號線d3的下一信號線d4所表示的位元(表示邏輯運算結果的反轉位元)進行鎖存、輸出。
選擇器部41c連接有記憶體裝置12的資料匯流排中的MSB側的d5和作為其下一位元的d6的各信號線。又,該選擇器部41c接收選擇器部41b所輸出的1位元的信號。
而且,在從時脈供給部25輸入的副時脈信號φ3上昇的時序,選擇器部41c讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21所輸出的位元串所表示的位址上的資料並進行鎖存。在此例中的選擇器部41c在從選擇器部41b接收的位元為「0」時,選擇從記憶體裝置12讀出的資料中的MSB側的位元(信號線d5所輸出的邏輯運算結果)進行鎖存、輸出。又,該選擇器部41c在從選擇器部41b接收的位元為「1」時,選擇從記憶體裝置12讀出的資料中的上述信號線d5的下一信號線d6所表示的位元(表示邏輯運算結果的反轉位元)進行鎖存、輸出。
並且,選擇器部41d連接有記憶體裝置12的資料匯流排中的MSB側的d7和作為其下一位元的d8的各信號線。又,該選擇器部41d接收選擇器部41c所輸出的1位元的信號。
而且,在從時脈供給部25輸入的副時脈信號φ4上昇的時序,選擇器部41d讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21所輸出的位元串所表
示的位址上的資料並進行鎖存。在此例中的選擇器部41d在從選擇器41c接收的位元為「0」時,選擇從記憶體裝置12讀出的資料中的MSB側的位元(信號線d7所輸出的邏輯運算結果)進行鎖存、輸出。又,該選擇器部41c在從選擇器部41b接收的位元為「1」時,選擇從記憶體裝置12讀出的資料中的上述信號線d7的下一信號線d8所表示的位元(表示邏輯運算結果的反轉位元)進行鎖存、輸出。該選擇器部41d的輸出是輸出到外部。
其次說明本實施形態的此例之邏輯運算裝置1的動作。在此,例如接收M=N×n(記憶體裝置12的位址匯流排寬度N的整數n倍)位元長度的資料D(將其第i個位元設為bi(i=1,2,......、N×n))的輸入作為邏輯運算、即邏輯互斥或的計算對象。而且,從MSB側(或者LSB側)依序將第i個位元分別輸入到第i個三態緩衝器21_i。
而且,邏輯運算裝置1如下地進行動作。在選擇器部41d具有輸出之後(圖6的時刻t0),其次在時脈供給部25所輸出的時脈信號CLK以及副時脈信號φ1上昇的時序(圖6的時刻t1),三態緩衝器21_1~21_8將已輸入的位元b1、b2、......、b8提供給記憶體裝置12的位址匯流排。
此時,輸出單元40的選擇器部41a讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21_1~21_8所輸出的位元串所表示的位址上的資料。此外,在此,設為從外部向選擇器部41a輸入「0」的信號。選擇器部41a具備鎖存器,該鎖存器在副時脈信號φ1上昇的時序(圖6的時刻t1),將從記憶體裝置12讀出的資料中的MSB的位元(經由資料匯流排的信號線d1輸出的資料、即邏輯運算結果)作為運算結果R1進行鎖存、輸出。該輸出R1輸出到選擇器部41b。
選擇器部41b首先接收該輸出R1。其次在時脈供給部25所輸出的時脈信號CLK和副時脈信號φ2上昇的時序(圖6的時刻t3),三態緩衝器21_9~21_16將已輸入的位元b9、b10、......、b16提供給記憶體裝置12的位址匯流排。
而且,選擇器部41b讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21_9~21_16所輸出的位元串所表示的位址上的資料。而且,選擇器部41b在從選擇器部41a輸入的位元為「0」時(運算結果R1為「0」時),將從記憶體裝置12讀出的資料中的MSB側的位元(資料匯流排上的信號線d3的輸出、即邏輯運算結果)作為運算結果R2,在副時脈信號φ2上昇的時序(圖6的時刻t3)進行鎖存、輸出。又,該選擇器部41b在從選擇器部41a輸入的位元為「1」時(運算結果R1為「1」時),將從記憶體裝置12讀出的資料中的信號線d4的輸出(邏輯運算結果的反轉位元)作為運算結果R2,在副時脈信號φ2上昇的時序(圖6的時刻t3)進行鎖存、輸出。該輸出R2被選擇器41c接收。
以下選擇器部41c......也同樣地進行動作。而且,如果在時脈供給部25所輸出的副時脈信號φ4上昇的時序三態緩衝器21_25~21_32將被輸入的位元b25、b26、......、b32提供給記憶體裝置12的位址匯流排,則選擇器部41d讀出記憶體裝置12所存放的資料之中,存放在三態緩衝器21_25~21_32所輸出的位元串所表示的位址上的資料。
而且,選擇器部41d在從選擇器部41c輸入的位元為「0」時(運算結果R3為「0」時),將從記憶體裝置12讀出的資料中的MSB側的位元(資料匯流排上的信號線d7的輸出、即邏輯運算結果)作為運算結果R,在副時脈信號φ4上昇的時序
進行鎖存、輸出。又,該選擇器部41d在從選擇器部41c輸入的位元為「1」時(運算結果R3為「1」時),將從記憶體裝置12讀出的資料中的信號線d8的輸出(邏輯運算結果的反轉位元)作為運算結果R,在副時脈信號φ4上昇的時序進行鎖存、輸出。
如此,在本實施形態的此例中,輸出單元40所包括的各選擇器部41作為如下單元而發揮功能:在分時地逐次輸出N位元的位元串的時序,使用前次輸出的位元來選擇性地輸出存取記憶體裝置而取出的位元間的邏輯運算結果及其反轉位元的其中之一。而且,在第四次時,輸出單元40將8×4=32位元長度的資料D所含有之各位元的邏輯運算結果(在此例中為邏輯互斥或)作為運算結果R並進行輸出。
如此,在本實施形態的此例中,輸出單元40作為如下單元而發揮功能:在分時地輸出N位元的位元串的時序使用前次輸出的位元來選擇性地輸出存取記憶體裝置而取出的位元間的邏輯運算結果及其反轉位元的其中之一。
並且,在本實施形態的目前為止的說明中,在利用圖3所示的對照表的情況下,輸出部31或者輸出單元40利用前層的輸出來進行切換:輸出從記憶體裝置12讀出的資料的奇數位元格或偶數位元格。然而,本實施形態並不限於此,也可以例如圖9所例示的那樣,將邏輯反轉(NOT)電路51與從記憶體裝置12輸出的信號線d(輸出使用有以輸入到記憶體裝置12的位址來表示的位元串的邏輯運算結果的信號線)相連接,獲得使用有以輸入到記憶體裝置12的位址來表示的位元串的邏輯運算結果的反轉位元。在這種情況下,輸出部31或者輸出單元40利用前層的輸出來選擇上述信號線d以及邏輯反轉電路51的輸出的其中之一(在輸出單元40中對其進行鎖存)並進行輸出。
並且,也可以如本實施形態的圖4、圖5或者圖7所例示的邏輯運算裝置1,接收記憶體裝置的位址匯流排寬度N的n倍長度(例如若位址匯流排寬度為8位元、n=4,則為32位元長度)的位元串的輸入,在輸出其邏輯運算結果1個位元時,將此等邏輯運算裝置1例如並聯地配置8個,並將其輸出再輸入到8輸入邏輯運算電路,來進行N×n×8位元長度的邏輯運算。
具體而言,圖10顯示以下情形:並聯地配置8個圖4、圖5或者圖7所例示的邏輯運算裝置1,該邏輯運算裝置1接收位址匯流排寬度為8位元、n=4的32位元長度的位元串的輸入,並且設置了記憶體裝置12內的對照表,以計算作為其邏輯運算結果的邏輯互斥或。
在該圖10之例中,將各邏輯運算裝置1所輸出的1位元的輸出分別輸入到與圖11所例示的電路相同的8輸入邏輯互斥或電路100,從而獲得該邏輯互斥或的運算結果1位元。根據該電路結構,能夠通過較小規模的電路結構來獲得8×4×8=256位元長度的位元串所含有之各位元間的邏輯互斥或。
1‧‧‧邏輯運算裝置
10‧‧‧邏輯運算單元
11‧‧‧輸入緩衝部
12‧‧‧記憶體裝置
13‧‧‧輸出部
Claims (4)
- 一種邏輯運算裝置,包括:記憶體裝置,其接收N位元長度的位元串的輸入,在所輸入的該位元串所表示的位址上儲存對照表,其中,該對照表是存放多位元長度之資料而成,該多位元長度之資料的一部分含有表示所輸入的該位元串所含有之各位元間的邏輯運算結果的位元,且N為大於等於2的整數;以及輸出單元,其存取該記憶體裝置,輸出存放在所接收的該位元串所表示的位址上的資料所含有的位元。
- 如申請專利範圍第1項之邏輯運算裝置,其中,在存放於該記憶體裝置中的資料中包含所輸入的該位元串所含有之各位元間的邏輯運算結果及其反轉位元,該輸出單元選擇性地輸出該位元間的邏輯運算結果及其反轉位元的其中之一。
- 如申請專利範圍第2項之邏輯運算裝置,其中,還包括分割單元,該分割單元接收M位元長度的位元串的輸入,從該M位元長度的位元串提取N位元的位元串,並將所提取的該N位元的位元串分時地輸出到該記憶體裝置,其中,M為大於N的整數,在分時地輸出該N位元的位元串的時序,該輸出單元使用前次輸出的位元來選擇性地輸出存取記憶體裝置而取出的位元間的邏輯運算結果及其反轉位元的其中之一。
- 如申請專利範圍第1至3項中任一項之邏輯運算裝置,其中, 存放於該記憶體裝置中的邏輯運算結果是輸入位元串所含有之各位元間的邏輯互斥或的運算結果。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013157090A JP6219631B2 (ja) | 2013-07-29 | 2013-07-29 | 論理演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201506779A true TW201506779A (zh) | 2015-02-16 |
TWI562059B TWI562059B (en) | 2016-12-11 |
Family
ID=52431449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103119252A TWI562059B (en) | 2013-07-29 | 2014-06-03 | Arithmetic logic unit |
Country Status (6)
Country | Link |
---|---|
US (1) | US9866219B2 (zh) |
EP (1) | EP3029839B1 (zh) |
JP (1) | JP6219631B2 (zh) |
CN (1) | CN105432018B (zh) |
TW (1) | TWI562059B (zh) |
WO (1) | WO2015015905A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10990389B2 (en) * | 2019-04-29 | 2021-04-27 | Micron Technology, Inc. | Bit string operations using a computing tile |
US10778245B1 (en) * | 2019-08-20 | 2020-09-15 | Micron Technology, Inc. | Bit string conversion |
US11227641B1 (en) * | 2020-07-21 | 2022-01-18 | Micron Technology, Inc. | Arithmetic operations in memory |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2853154B2 (ja) * | 1988-08-19 | 1999-02-03 | 富士ゼロックス株式会社 | プログラマブル・ファジィ論理回路 |
JPH0457112A (ja) * | 1990-06-26 | 1992-02-24 | Mitsubishi Electric Corp | 演算装置 |
US6049223A (en) * | 1995-03-22 | 2000-04-11 | Altera Corporation | Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory |
US6487190B1 (en) * | 1996-06-27 | 2002-11-26 | Interdigital Technology Corporation | Efficient multichannel filtering for CDMA modems |
JP3533825B2 (ja) | 1996-04-26 | 2004-05-31 | 日本電信電話株式会社 | 論理演算ユニットおよび論理演算装置 |
GB9900432D0 (en) * | 1999-01-08 | 1999-02-24 | Xilinx Inc | Linear feedback shift register in a progammable gate array |
US6555398B1 (en) * | 1999-10-22 | 2003-04-29 | Magic Corporation | Software programmable multiple function integrated circuit module |
US6463003B2 (en) * | 2000-06-07 | 2002-10-08 | Advanced Micro Devices, Inc. | Power saving scheme for burst mode implementation during reading of data from a memory device |
US7111224B1 (en) * | 2001-02-28 | 2006-09-19 | Xilinx, Inc. | FPGA configuration memory with built-in error correction mechanism |
US20030068038A1 (en) | 2001-09-28 | 2003-04-10 | Bedros Hanounik | Method and apparatus for encrypting data |
JP2003281516A (ja) * | 2002-03-22 | 2003-10-03 | Canon Inc | 画像処理装置及びその方法 |
US7157933B1 (en) * | 2004-02-14 | 2007-01-02 | Herman Schmit | Configurable circuits, IC's, and systems |
US7330050B2 (en) * | 2004-11-08 | 2008-02-12 | Tabula, Inc. | Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements |
US7129864B2 (en) * | 2004-12-31 | 2006-10-31 | Intel Corporation | Fast compact decoder for huffman codes |
WO2006075218A2 (en) * | 2005-01-14 | 2006-07-20 | Nxp B.V. | Channel encoding with two tables containing two sub-systems of a z system |
JP4827695B2 (ja) * | 2006-11-13 | 2011-11-30 | パナソニック株式会社 | 無線受信装置 |
US7768430B1 (en) * | 2008-05-20 | 2010-08-03 | Altera Corporation | Look-up table based memory |
US7663957B2 (en) * | 2008-05-27 | 2010-02-16 | Via Technologies, Inc. | Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor |
JP5261738B2 (ja) * | 2009-01-15 | 2013-08-14 | 国立大学法人広島大学 | 半導体装置 |
US9747105B2 (en) * | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US8719459B2 (en) * | 2011-10-24 | 2014-05-06 | Skyworks Solutions, Inc. | Dual mode power amplifier control interface with a three-mode general purpose input/output interface |
-
2013
- 2013-07-29 JP JP2013157090A patent/JP6219631B2/ja active Active
-
2014
- 2014-06-03 TW TW103119252A patent/TWI562059B/zh active
- 2014-06-09 US US14/908,339 patent/US9866219B2/en active Active
- 2014-06-09 EP EP14831256.4A patent/EP3029839B1/en active Active
- 2014-06-09 WO PCT/JP2014/065245 patent/WO2015015905A1/ja active Application Filing
- 2014-06-09 CN CN201480042802.7A patent/CN105432018B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015026341A (ja) | 2015-02-05 |
JP6219631B2 (ja) | 2017-10-25 |
TWI562059B (en) | 2016-12-11 |
EP3029839B1 (en) | 2018-05-30 |
WO2015015905A1 (ja) | 2015-02-05 |
EP3029839A4 (en) | 2017-04-19 |
CN105432018B (zh) | 2019-01-08 |
EP3029839A1 (en) | 2016-06-08 |
US9866219B2 (en) | 2018-01-09 |
CN105432018A (zh) | 2016-03-23 |
US20160211851A1 (en) | 2016-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201019342A (en) | Data path for multi-level cell memory, methods for storing and methods for utilizing a memory array | |
JP5141910B2 (ja) | Sms4暗号アルゴリズムを実現する暗号化および復号化処理方法とそのシステム | |
CN107437945B (zh) | 并串转换电路 | |
TWI779606B (zh) | 用於執行散列算法的電路和方法 | |
US9933998B2 (en) | Methods and apparatuses for performing multiplication | |
US7843374B2 (en) | Priority encoder | |
TW201506779A (zh) | 邏輯運算裝置 | |
TW201832232A (zh) | 記憶體之記憶胞元資料處理 | |
KR100478974B1 (ko) | 직렬 유한체 승산기 | |
US20090244991A1 (en) | Semiconductor memory device | |
TW201830400A (zh) | 半導體儲存裝置及其讀出方法 | |
TWI502603B (zh) | 積體電路 | |
WO2024066561A1 (zh) | 查找空闲存储的装置、方法及芯片 | |
TW201134100A (en) | (Xiu-accumulator) adder circuit and Xiu-accumulator circuit using the same | |
JP2015026341A5 (zh) | ||
Abedi et al. | Coplanar QCA serial adder and multiplier via clock-zone based crossover | |
JP2015019276A (ja) | 記憶装置、crc生成装置およびcrc生成方法 | |
JP6463169B2 (ja) | 電子回路およびカメラ | |
JP2016514338A (ja) | 記憶デバイス読み出し装置及び方法 | |
US8165263B2 (en) | Counting circuit and address counter using the same | |
TWI284457B (en) | State machine, counter and related method for gating redundant triggering clocks according to initial state | |
JP2005057452A (ja) | プログラマブル論理回路 | |
JP2005073146A (ja) | Crcチェック回路 | |
Bennet et al. | Computation of Field Programmable Cyclic Redundancy Checks Circuit Architecture | |
JP2019149070A (ja) | シリアルインタフェース回路、半導体装置、及びシリアルパラレル変換方法 |