Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DEVICE AND METHOD TO PERFORM A PARALLEL MEMORY TEST
Document Type and Number:
WIPO Patent Application WO/2013/113426
Kind Code:
A1
Abstract:
The invention relates to a semiconductor device (DV1) comprising N memory modules (MEM0 _MEMN-1), N being greater than or equal to three, each module comprising an array of memory cells arranged in rows and columns, a write circuit (WCT) coupled to each module and configured to write data (ID) in the memory cells, a read circuit (RCT) coupled to each module and configured to supply output data (OD0 _ODN-1) from the memory cells, a module selection circuit (MDEC) configured to individually select one memory module (MEM0 _MEMN-1) in a regular operation mode, and to collectively select two or more of the modules in a parallel mode, and a comparator circuit (CMP) coupled to the N modules and configured to compare, in the parallel mode, the output data supplied by the N modules.

Inventors:
HICKEY GRAEME (GB)
KINCAID STUART (GB)
Application Number:
PCT/EP2012/073966
Publication Date:
August 08, 2013
Filing Date:
November 29, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INSIDE SECURE (FR)
International Classes:
G11C29/26
Foreign References:
US20050216808A12005-09-29
US20060006419A12006-01-12
US5982684A1999-11-09
Other References:
See also references of EP 2810281A1
Attorney, Agent or Firm:
MARCHAND, André et al. (Aix En Provence, FR)
Download PDF:
Claims:
CLAIMS

1. Semiconductor device (DV1, DV2) comprising:

- N memory modules (MEM0-MEMN_i , MEMO ' -MEM2 ' ) , N being greater than or equal to three, each module comprising an array of memory cells arranged in rows and columns,

a write circuit (WCT) coupled to each module and configured to write data (ID) in the memory cells,

a read circuit (RCT) coupled to each module and configured to supply output data ( OD0 - ODN_i ) from the memory cells,

a module selection circuit (MDEC) configured to individually select one memory module (MEM0-MEMN_i , MEM0'-MEM2') in a regular operation mode, and to collectively select two or more of the modules in a parallel mode, and

a comparator circuit (CMP, CMP' ) coupled to the N modules and configured to compare, in the parallel mode, the output data supplied by at least two of the N modules,

characterized in that:

- the N memory modules comprise one module (MEM0, MEMO') designated as the reference module and N-l modules ( MEMi - MEMN-i , MEM1 ' , MEM2 ' ) designated as auxiliary modules, - the comparator circuit (CMP, CMP' ) is configured to compare the output data ( ODi - ODN_i ) supplied by each auxiliary module with the output data (OD0) supplied by the reference module, and

- the semiconductor device is configured to supply the output data (OD0) from the reference module (MEM0, MEMO') to a data verification means (ATE) .

2. Device according to claim 1, further comprising a circuit (CRC) configured to perform a cyclical redundancy check on the output data (OD0) supplied by the reference module (MEM0, MEMO'), and to supply a check result (CRR) to the data verification means (ATE) .

3. Device according to one of claims 1 or 2, wherein the verification means (ATE) is built-in self test circuit coupled to the module selection circuit (MDEC) , the comparator circuit (CMP, CMP' ) , and to the reference module (MEM0, MEMO'). 4. Device according to one of claims 1 to 3, wherein the comparator circuit (CMP' ) further comprises means to enable and disable ( AGi -AGN-i ) a comparison of output data ( ODi - ODN-i ) supplied by an auxiliary module ( MEMi -MEMN_i , MEM1 ' , MEM2 ' ) with the output data (OD0) supplied by the reference module (MEM0, MEMO'), depending on the status of a module select signal ( S Li - S LN_i , SL1', SL2').

5. Device according to one of claims 1 to 4, wherein at least two of the memory modules (MEMO', MEM1 ' , MEM2 ' ) comprise different numbers of rows of memory cells, and the memory module (MEMO') comprising the greatest number of rows is designated as the reference array.

6. Device according to claim 5, wherein the module selection circuit (MDEC) is configured to:

- receive on input a parallel signal (PS) and a module signal (MS),

supply on output N module select signals (SL0-SLN_i , SL0'-SL2'), one signal per module, and

- deselect one or more select signals regardless of the state of the parallel signal.

7. Method of testing N memory modules (MEM0-MEMN_i , MEM0'-MEM2') in parallel, N being greater than or equal to three, comprising the steps of: - writing an input data (ID) at an address (AD) in each of the memory modules,

reading the data at the address of the modules to obtain output data (OD0-ODN_i ) ,

- determining whether the output data from the modules are identical (EQ, NQ) ,

characterized in that it further comprises the steps of:

- designating one of the modules as the reference module (MEMo, MEMO') and the N-l other modules ( MEMi -MEMN_i , MEM1 ' , MEM2 ' ) as auxiliary modules,

- comparing the output data ( ODi - ODN_i ) from each of the auxiliary modules being tested with the output data (OD0) from the reference module, and

- supplying the output data from the reference module to a data verification means (ATE) .

8. Method according to claim 7, comprising the steps of:

- determining the largest memory module (MEMO')/ and

- designating the largest memory module as the reference module.

9. Method according to claim 8, further comprising, during a parallel operation, the step of selecting a subset (MEMO', MEM1 ' ) of at least two of the N memory modules according to an address belonging to a test space (TS012, TS01) common to the subset of modules.

Description:
DEVICE AND METHOD TO PERFORM A PARALLEL MEMORY TEST

The present invention relates to a semiconductor device comprising a plurality of memory modules, and configured to perform a parallel test of writing and reading data in the memory modules. The present invention also relates to a method of performing such a parallel test .

After fabrication, a semiconductor device is usually subjected to a test process comprising write/read/erase cycles of test data, such as all O's, then all l's, then alternating O's and l's, in memory cells of a memory module in order to identify faulty cells and modules. Nevertheless, when the device comprises a plurality of memory modules, a serial test of one module after the other can be quite lengthy, depending on the number of cycles to be carried out, the number of modules, and the number of memory cells in the modules. Parallel testing of several modules at the same time has therefore been developed to speed up the test process .

Fig. 1 shows a semiconductor device DV comprising a plurality of memory modules and configured to perform a parallel test along the lines of the teaching of US Patent 5,982,684. The device DV comprises a total of N memory modules MEMi, i being the module reference from 0 to N-l, thus MEMo, MEMi, MEM 2 ... MEM N _i . The device DV further comprises write circuitry WCT and read circuitry RCT coupled to each module, a module decoder MDEC, an address bus AB, a data bus DB, an input data memory IDM, an output data multiplexor ODM, a first comparator CMP1, and a second comparator CMP2.

Each memory module MEMi receives on input an address AD from the address bus AB, input data ID from the data bus DB, and a corresponding select signal SLi from the module decoder MDEC. The module decoder MDEC receives on input a parallel signal PS and a module signal MS, and supplies on output the select signals SLi (here SL 0 , SLi , SL 2 ... SL N _i ) . Each memory module supplies output data ODi (here OD 0 , ODi , OD 2 , OD N _i ) to the first comparator CMP1.

Comparator CMP1 comprises a total of N-l first- level comparators CP i : i+ i (here CP 0: i, CPi :2 ... CP 2: N-I) , and one second-level comparator CP. Each first-level comparator receives the output data ODi on input from two consecutive memory modules, and supplies on output a comparison signal to the second-level comparator CP, which in turn supplies a first equal signal EQ1.

The input data memory IDM is coupled to the data bus DB, receives and stores the input data ID, and supplies on output the input data ID to the second comparator CMP2. The output data multiplexor ODM is coupled to the N memory modules, transferring the output data ODi from one of the memory modules to the comparator CMP2 on output. Comparator CMP2 thus receives the input data ID from memory IDM and the output data ODi from the multiplexor ODM, and supplies on output a second equal signal EQ2.

During a parallel test mode, a parallel write is performed by setting the parallel signal PS to 1 (logic high value) . The module decoder MDEC selects all N modules MEM 0 ... MEM N _i by means of select signals SL 0 ... SL N _i . The input data ID present on the data bus DB is written at the same address AD of all modules, and is also stored in the input data memory IDM. A parallel read is then performed by setting the signal PS to 1, or by keeping it at 1 if the parallel read is performed immediately after the write. The data stored in the memory cells indicated by the address AD of each module are read and supplied as output data ODi to the first comparator CMP1. Comparator CMP1 compares the output data from all the modules, and sets the first equal signal EQ1 to 1 if the data are the same . Meanwhile, the output data multiplexor ODM receives the output data ODi supplied by one of the memory modules MEMi, and transfers it to the second comparator CMP2. Comparator CMP2 compares the output data supplied by the multiplexor ODM with the input data ID supplied by the input data memory IDM, and sets the second equal signal EQ2 to 1 if the input data ID and the output data ODi are the same. Thus, equal signals EQ1, EQ2 are configured to indicate whether all the memory modules have the same data and whether the output data is correct.

Nevertheless, such a process allows only a limited amount of test data to be verified at a time, depending on the size of the input data memory IDM. Additionally, certain elements such as the input data memory IDM, the output data multiplexor ODM, and second comparator CMP2 are required only for the parallel test phase, and are unnecessary for the normal operation.

It may therefore be desired to provide a semiconductor device configured to perform a parallel test with fewer constraints.

Embodiments of the invention relate to a semiconductor device comprising N memory modules, N being greater than or equal to three, each module comprising an array of memory cells arranged in rows and columns, a write circuit coupled to each module and configured to write data in the memory cells, a read circuit coupled to each module and configured to supply output data from the memory cells, a module selection circuit configured to individually select one memory module in a regular operation mode, and to collectively select two or more of the modules in a parallel mode, and a comparator circuit coupled to the N modules and configured to compare, in the parallel mode, the output data supplied by the N modules. The N memory modules comprise one module designated as the reference module and N-l modules designated as auxiliary modules, the comparator circuit is configured to compare the output data supplied by each auxiliary module with the output data supplied by the reference module, and the semiconductor device is configured to supply the output data from the reference module to a data verification means.

According to one embodiment, the device further comprises a circuit configured to perform a cyclical redundancy check on the output data supplied by the reference module, and to supply a result to the data verification means.

According to one embodiment, the verification means is built-in self test circuit coupled to the module selection circuit, the comparator circuit, and to the reference module.

According to one embodiment, the comparator circuit further comprises means to enable and disable a comparison of output data supplied by an auxiliary module with the output data supplied by the reference module, depending on the status of a module select signal.

According to one embodiment, at least two of the memory modules comprise different numbers of rows of memory cells, and the memory module comprising the greatest number of rows is designated as the reference array .

According to one embodiment, the module selection circuit is configured to receive on input a parallel signal and an address signal, supply on output N module select signals, one signal per module, and deselect one or more select signals regardless of the parallel signal being set in a high logic state.

Embodiments of the invention also relate to a method of testing N memory modules in parallel, N being greater than or equal to three, comprising the steps of writing an input data at an address in each of the memory modules, reading the data at the address of the modules to obtain output data, determining whether the output data from the modules are identical. The method further comprises the steps of designating one of the modules as the reference module and the N-l other modules as auxiliary modules, comparing the output data from each of the auxiliary modules being tested with the output data from the reference module, and supplying the output data from the reference module to a data verification means.

According to one embodiment, the method comprises the steps of determining the largest memory module, and designating the largest memory module as the reference module .

According to one embodiment, the method further comprises, during a parallel operation, the step of selecting a subset of at least two of the N memory modules according to an address belonging to a test space common to the subset of modules.

Embodiments of the present invention will now be described in connection with, but not limited to, the appended drawings in which:

Fig. 1, previously described, shows a conventional semiconductor device configured to perform parallel testing,

Fig. 2 shows a semiconductor device configured to perform parallel testing according to an embodiment of the invention,

Fig. 3 shows a portion of a semiconductor device configured to perform parallel testing according to another embodiment of the invention,

- Figs. 4A and 4B respectively show system address mapping and physical address mapping of memory modules,

- Fig. 5 is a flowchart of a module selection process according to one embodiment of the invention, and

- Fig. 6 is an output data comparator according to one embodiment of the invention. Embodiments of the invention relate to a semiconductor device comprising a plurality of memory modules and configured to perform a parallel testing of the memory modules, wherein one memory module is designated as a reference module and the other memory modules are designated as auxiliary modules.

Fig. 2 shows a semiconductor device DV1 according to one embodiment of the invention. The device DV1 comprises a total of N memory modules MEMi, N being equal to at least three and i being the module reference number from 0 to N-l, thus MEM 0 , MEMi, MEM 2 ... MEM N _i . Each memory module comprises an array of memory cells arranged in rows and columns. Module MEM 0 is designated as the reference module, and the N-l other modules MEMi... MEM N _i are designated as the auxiliary modules. The semiconductor device DV1 further comprises write circuitry WCT and read circuitry RCT coupled to each module, a module decoder MDEC, an address bus AB, a data bus DB, and an output data comparator circuit CMP.

Each memory module MEMi receives on input an address AD from the address bus AB, input data ID from the data bus DB, and a corresponding select signal SLi (SLo, SLi, SL 2 ... SL N -i) from the module decoder MDEC. The module decoder MDEC receives on input a parallel signal PS and a module signal MS, and supplies on output the select signals SLi accordingly. Each memory module MEMi supplies output data ODi (here OD 0 , ODi, OD 2 ... OD N _i) to the comparator CMP and to the data bus DB (connection of the output data to the bus not shown in Fig. 2) for regular operation of the semiconductor device.

The comparator CMP comprises a total of N-l first-level comparators CP 0: i, CP 0: 2- CP 0: N-I, and one second-level comparator CP. The first-level comparators CPo:i, CPo:2... CP 0: N-i each receive on one input the output data OD 0 from the reference memory module MEM 0 and on another input the output data ODi, OD 2 ... OD N _i from an auxiliary memory module MEMi, MEM 2 ... MEM N _i respectively. The comparators CP 0: i, CP 0: 2- CP 0: N-I each supply on output a comparison signal CSi, CS 2 ... CS N -i to the second-level comparator CP. In turn, the comparator CP supplies on output an equal signal EQ.

The semiconductor device DV1 is further coupled to an automated test equipment ATE. The equipment ATE may be external to the device, such as a probe card and tester, or may be a built-in self-test circuit "BIST". In one embodiment, the equipment ATE receives on input the output data OD 0 supplied by the reference memory module MEMO and the equal signal EQ supplied by the comparator CMP, and supplies on output the module signal MS, the parallel signal PS, the address AD, the test input data ID to the module decoder MDEC, the address bus AB, the data bus DB, and the write and read circuitry WCT, RCT .

A control circuit may also be supplied through which the module decoder MDEC, address bus AB, data bus DB, and the write/read circuitry WCT, RCT are coupled to the automated test equipment ATE, and also controlling these elements during normal operation.

During a parallel test mode, a parallel write is performed by setting the parallel signal PS to 1 (logic high value) . The module decoder MDEC selects all N modules MEM 0 ... MEM N _i by means of select signals SL 0 ... SL N _i. The input data ID on the data bus DB is written at the same address AD of all modules. A parallel read is then performed by setting (or keeping) the parallel signal to 1. The data stored in the memory cells indicated by the address AD of each module are read and supplied as output data ODi to the comparator CMP.

Comparator CMP compares the output data from each of the auxiliary modules with the output data from the reference module. The equal signal EQ is set to 1 if the output data ODi ... OD N _i from all the auxiliary modules are equal to the output data OD 0 from the reference module. Meanwhile, the output data OD 0 from the reference module MEMO is supplied to the automated test equipment ATE, which verifies the correctness of the output data.

Fig. 3 shows a portion of a semiconductor device DV2 capable of performing parallel testing according to another embodiment of the invention. Device DV2 differs from device DV1 shown in Fig. 2 only in that a demultiplexer DMX is provided in the path of the output data OD 0 between the output of reference module MEM 0 and the equipment ATE. The demultiplexer DMX is controlled by a cyclical redundancy calculation enable signal CRS, supplied by the automated test equipment ATE or by a control circuit. Signal CRS directs the output data OD 0 either to a cyclical redundancy circuit CRC or directly to the automated test equipment ATE. The cyclical redundancy circuit CRC performs error checking before sending a cyclic redundancy result CRR to the automated equipment ATE. This embodiment is preferred when a serial output of the string of data OD 0 on a single port of the device is undesired, due to time constraints.

Parallel Testing of Memory Modules of different sizes

Conventionally, parallel testing of multiple memory modules has been limited to modules of the same size.

Nevertheless, the semiconductor device may comprise modules of different sizes, for example to optimize the layout of a large memory of an integrated circuit upon a semiconductor substrate.

Figs. 4A, 4B respectively show a system address SA mapping and a physical address PA mapping of three memory modules MEMO', MEM1 ' , MEM2 ' of unequal sizes. The largest memory module, here module MEMO', is designated as the reference module. The other memory modules MEM1', MEM2' are designated as the auxiliary modules. Preferably but not essentially, they are referenced in decreasing size, such that module MEMO' is larger than module MEM1 ' , which is larger than module MEM2' . As shown in the system view in Fig. 4A, the memory modules MEMO', MEM1 ' , MEM2 ' are perceived by the device as being a continuous memory space, comprising a system start address SSA and a system end address SEA. Each module MEMO', MEM1 ' , MEM2 ' has a system end address SEO, SE1, SE2 respectively.

As shown in the physical view in Fig. 4B, the memory modules MEMO', MEM1 ' , MEM2 ' are physically non- continuous, and may be physically separated from each other. Each module MEMO', MEM1 ' , MEM2 ' has a physical end address PEO, PE1, PE2 respectively, and a same physical start address PSA. Furthermore, test spaces TSO, TS01, TS012 of the physical modules are defined. Test space TS012 comprises the physical addresses common to all memory modules MEMO', MEM1 ' , MEM2 ' , test space TS01 comprises the physical addresses common to the memory modules MEMO', MEM1 ' , and test space TSO comprises the physical addresses unique to memory module MEMO'. The write and read of the test space TSO is done individually for module MEMO' since module MEMO' was designated as the reference module, i.e. that having the greatest number of rows .

In the following, for ease of explanation, the memory addresses are given in decimal format, but any known format for addressing memory space may be used. As a numerical example, it is assumed that the semiconductor device comprises a total of 2000 memory cells, module MEMO' comprising 1000 memory cells, module MEM1' comprising 750 memory cells, and module MEM2' comprising 250 memory cells. A total of 2000 addresses are allocated to the memory modules, from 000 to 1999. Memory module MEMO' has a system address range from system start address SSA=000 to address SE0=999, module MEM1 ' has a system address range from address 1000 to address SE1=1749, and module MEM2' has a system address range from address 1750 to address SEA=SE2=1999. Memory module MEMO' has a physical address range from the physical start address PSA=000 to address PE0=999, module MEM1' has a physical address range from address PSA=000 to address PE1=749, and module MEM2 ' has a physical address range from address PSA=000 to address PE2=249. Test space TS012 comprises the physical addresses from address PSA=000 to PE2=249 (common to all memory modules) , test space TS01 comprises the addresses from 250 to PE1=749 (common to memory modules MEMO', MEM1' only), and test space TSO comprises the addresses from 750 to PEA=PE0=999 (unique to memory module MEMO').

Fig. 5 is a flow chart of a memory module selection process for memory modules of unequal sizes, according to one embodiment, with the numerical values provided above in relation to Figs. 4A and 4B. As module MEMO' was designated as the reference module, the addressing of its physical address space is used for parallel testing.

The selection process comprises steps SO to S13. In step SO, the system address SA corresponding to the memory cells to be selected for write, read, or erase is sent on the address bus AB to the module decoder MDEC. The process then simultaneously proceeds to steps SI, S4, S9.

In step SI, the module decoder determines whether address SA is less than or equal to the system end address SE0, thus SA<SE0 [SA<999] . If the response is yes, the process proceeds to step S2 in which a module MEMO' select signal SL0' is set to 1 (logic high) . If the response at step SI is no, the process proceeds to step S3 in which the select signal SL0' is set to 0 (logic low) .

In step S4, the module decoder determines whether the system address SA is greater than the system end address SE0 and less than or equal to the system end address SE1, thus SE0<SA<SE1 [ 999<SA<1749] . If the response is yes, the process proceeds to step S5 in which a module MEM1' select signal SL1' is set to 1. If the response at step S4 is no, the process proceeds to step S6. In step S6, the physical address PA is determined, and it is determined whether the physical address is less than or equal to the physical end address PE1, thus PA≤PE1 [PA<749] . If the response is no, the process proceeds to step S7 in which the select signal SL1' is set to 0. Otherwise, if the response at step S6 is yes, the process proceeds to step S8 in which it is determined whether the parallel signal PS is set to 1 (i.e. activated) . If the response is yes, then the process goes to step S5 in which the module MEM1' select signal SL1' is set to 1. Otherwise, if the response at step S6 is no, the process goes to step S7, and the select signal SL1' is set to 0.

Likewise, in step S9, the module decoder determines whether the system address SA is greater than the system end address SE1 and less than or equal to the system end address SE2, thus SEKSA≤SE2 [ 1749<SA<1999 ] . If the response is yes, the process proceeds to step S10 in which a module MEM2 ' select signal SL2 ' is set to 1. If the response at step S9 is no, the process proceeds to step Sll. In step Sll, the physical address PA is determined, and it is determined whether the physical address is less than or equal to the physical end address PE2, thus PA<PE2 [PA<249] . If the response is no, the process proceeds to step S12 in which the select signal SL2' is set to 0. Otherwise, if the response at step Sll is yes, the process proceeds to step S13 in which it is determined whether the parallel signal PS is set to 1. If the response is yes, then the process goes to step S10 in which the select signal SL2' is set to 1. Otherwise, if the response at step S13 is no, the process goes to step S12, and the module MEM2' select signal SL2' is set to 0.

In summary, if the system address SA falls within the designated system range for any memory module MEMO', MEM1', MEM2', then the corresponding select signal is set to 1, regardless of the state of the parallel signal PS. If however the system address SA does not fall within the designated system range for an auxiliary module MEM1', MEM2', then the physical address PA is determined. If neither the system address SA nor the physical address PA fall within the designated system/physical ranges, the select signal is set to 0, regardless of the state of the parallel signal.

If however the physical address PA falls within the designated physical range for the auxiliary memory module MEM1 ' , MEM2 ' and the parallel signal is set to 1, then the select signal is set to 1, selecting the module for a parallel operation along with the reference module MEMO'. On the other hand, if the physical address falls within the range designated for an auxiliary memory module MEM1 ' , MEM2 ' but the parallel signal PS is set to 0, then the select signal is set to 0.

Numerical examples

Example 1: system address SA=700, parallel signal PS=0. Signal SL0' is set to 1, and signals SL1', SL2' are set to 0.

Example 2: system address SA=500, parallel signal PS=1. Signals SL0', SL1' are set to 1, and signal SL2' is set to 0.

Example 3: system address SA=200, parallel signal PS=1. Signals SL0', SL1', SL2 ' are set to 1.

Fig. 6 shows a comparator circuit CMP' according to one embodiment. The comparator circuit CMP' is suited for use with a semiconductor device comprising either memory modules of equal size, as shown in Fig. 2, or comprising memory modules of unequal sizes, as shown in Fig. 4B. Comparator CMP' receives on input the output data OD 0 ... OD N -i from each memory module and the select signals SLi... SL N -i from the module decoder MDEC, and supplies on output a not equal signal NQ.

The comparator CMP' comprises a total of N-l first- level 'exclus ive or' x XOR' logic gates XGi , XG 2 ... XG N -i , a total of N-l AND logic gates AGi , AG 2 ... AG N _i , and one OR gate OG. Each XOR gate XGi... XG N -i receives on one input the output data OD 0 from the reference memory module and on one input the output data ODi... OD N _i respectively from one auxiliary memory module, and supplies on output a respective comparison signal CSi... CS N -i . Each AND logic gate AGi... AG N -i receives on one input the comparison signal CSi... CS N -i from its corresponding XOR gate and on one input the corresponding select signal SLi... SL N _i , and supplies on output an enabled comparison signal ECSi (ECSi, ECS 2 ... ECS N -i ) respectively. Finally, the OR gate OG receives on input the enabled comparison signals ECSi... ECS N -i from each of the AND gates AGi... AG N _i respectively and supplies on output the not equal signal NQ.

In operation, the comparison signal CSi supplied by an XOR gate XGi is set to 1 if the output data from the auxiliary module does not match the output data from the reference module. The output of the AND gate AGi will therefore be set to 1 if both the output data are different and the auxiliary module is selected for parallel read. If however the output data are the same (logic 0), the enabled comparison signal ECSi is set to logic 0, which therefore has no effect on the evaluation of the output data from the other modules. Moreover, if the data are not the same (logic 1) yet the select signal is set to logic 0, the enabled comparison signal ECSi is also set to logic 0, which also has no effect on the evaluation of the output data from the other modules. For example, in the case of parallel testing of memory modules of different sizes or if one of the modules is corrupt, its select signal is set to 0 so as to not affect the not equal result supplied by the comparator CMP' .

During a parallel test mode of uneven memory module sizes, a parallel write is performed by setting the parallel signal PS to logic 1 (logic high value) . The test input data ID is applied on the data bus DB and is presented to all the modules, but is only written in the modules selected by the module decoder MDEC. The addressing of the memory space thus begins, based on the physical space of module MEMO', starting at physical start address PSA=000. The module decoder MDEC selects modules MEMO', MEM1 ' , MEM2 ' by means of select signals SLO', SL1', SL2 ' . The input data ID on the data bus DB is written at the same address AD of all modules. As the address increases, the data is written in the test space TS012 until the physical end address PE2 is reached, at which point the module decoder sets the select signal SL2' to 0, deselecting the module MEM2' . The process continues, writing data in the test space TS01, and setting select signal SL1' to 0 once the physical end address PE1 is reached. Finally, test space TSO is written individually.

A parallel read is then performed by setting (or keeping) the parallel signal to 1. As before, the addresses of the physical space of module MEMO' are cycled through, with the module decoder MDEC setting the select signals SLi to 0 once their physical ranges are no longer included. The data stored in the memory cells indicated by the address AD of each module are read and supplied as output data ODi to the comparator CMP' . The setting of the select signals to 0 by the module decoder also affects the comparison of the output data by the comparison circuit CMP' . The AND gates have their outputs set to 0, preventing any interference of the unequal memory sizes on the data comparison, that is to say, to prevent a false result of the not equal signal NQ.

The skilled person will understand that the module decoder MDEC, address bus AB, data bus DB, write circuit WCT, and read circuit RCT may be used to perform normal memory operations of writing, reading, and erasing of memory cells in the memory modules. During a normal operation, the comparison circuit CMP and parallel signal PS may be disabled, or have their values ignored. Furthermore, the module selection process as set forth in relation to Fig. 5 and/or the comparison circuit CMP' shown in Fig. 6 may be implemented with memory modules of equal sizes. For example, it may be desired to perform a parallel test on only a subset of the memory modules, in which case, the corresponding select signals are set to 1 as needed, enabling the modules and the comparison on output.

It will further be understood by the skilled person that the method of testing a semiconductor device according to the invention is susceptible of various implementation variations. For example, the testing method as described above may be performed either before the semiconductor wafer is diced (singulated) into individual chips, or else performed on each individual chip after dicing.

Other physical implementations may also be envisaged. For example, the memory modules may be located on separate supports, such as on separate semiconductor chips .

Furthermore, it will be understood by the skilled person that other methods of module decoding other than that shown in Fig. 5 may be provided. For example, instead of simultaneous steps SI, S4, S9, the process may first determine whether the select signal SLO is to be set to 1, then whether signals SL1, SL2 are to be set to 1 depending on the state of the parallel signal PS. Alternatively, the module selection process may first determine the state of the parallel signal, and then determine which module (s) is (are) to be selected, depending on the physical and system addresses. Individual selection of two or more non-continuous system memory modules out of the N available modules may also be provided, for example to compare the output data from modules MEMO' and MEM2' without comparing the output data from module MEM1 ' . Rather than de-selecting a memory module, its output may be masked, filtered, or otherwise disregarded. The module decoder may further supply an address AD to all of the memory modules, along with the select signal SLi, in which case the memory modules are not linked to an address bus.

Finally, the signals and values may be reversed, for example "not equal" instead of "equal" signals, etc. depending upon the logic and logic gates employed.

A semiconductor device according to the invention is susceptible of being integrated in portable devices, such as mobile phones, music players, etc., as well as any other device that may have multiple memory modules.