Abstract:
An integrated circuit (IC) architecture includes a bit mask register (BMR) and a serial access memory (SAM) which share address decode and clock circuitry within a multiport random access memory chip. The integrated circuit also includes a random access memory and circuitry for performing a bit masked transfer between the serial access memory and the random access memory. Mask data may be clocked into the bit mask register, which may be cleared upon completion of a data transfer between the random access memory and the serial access memory. The mask data may also be inverted upon being transferred between the random access memory and the bit mask register. This architecture provides CLEAR and TRUE or COMPLEMENT masked transfer output ability in the BMR, and has utility in real-time video windowing in memory mapped computer graphics.

Description:
This application is a continuation of application Ser. No. 08/171,370 filed Dec. 20, 1993, now abandoned, which is a continuation of application Ser. No. 08/073,247 filed Jun. 7, 1993, now abandoned, which is a continuation of application Ser. No. 07/989,456 filed Dec. 9, 1992, now abandoned, which is a continuation of application Ser. No. 07/433,339 filed Nov. 8, 1989, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention generally applies to digital processing, specifically the manipulation of images mapped within a multiport device containing random access memory (RAM) and serial access memory (SAM). Specifically, this application discloses an integrated circuit (IC) architecture wherein a bit mask register (BMR) within a multiport RAM chip shares address decode and clock circuitry with SAM. This architecture has utility in high-speed applications such as real-time video windowing into memory mapped computer graphics. 
     2. Description of the Related Art 
     The closest prior art device known is a video RAM (VRAM) belonging to Digital Equipment Corporation (DEC), of Maynard, Mass. A simplified view of the pertinent architecture in this device is shown in FIG. 1. A row of data can be serially written into SAM, and then transferred in parallel from SAM to a selected RAM row. If the BMR is disabled, all data in SAM transfers unaltered to the RAM row. If the BMR is enabled and loaded with mask bits, selected bits in SAM will be masked by the BMR during said transfer (now a &#34;bit masked&#34; transfer), allowing only selected (non-masked) bits in the RAM row to be updated, while other (masked) bits in the RAM row remain unaltered. 
     Mask bits are generally loaded into the BMR by serially clocking them into SAM, then transferring them into the BMR. Alternately, mask bits can be transferred to the BMR from a row in RAM. Bits may also be transferred out of the BMR into RAM or SAM. It is noted here that in the DEC part, whenever bits are transferred out of the BMR, they are mandatorily inverted. This is so that a RAM row can be inverted by transferring from the RAM row to the BMR, then transferring from the BMR back to the same RAM row. 
     One way such an architecture might be used is in memory mapped image processing. Assume for the sake of clarity that an entire display field is mapped in the RAM section of said VRAM, where, for example, a `1` represents a bright pixel and a `0` represents a dark pixel. A new rectangular window of data is written into the map by the procedure below. Mask bits define one dimension of the window (how many columns wide) and the number of rows windowed defines the other dimension (how many rows high). 
     1. Serially input mask bits into SAM. 
     2. Transfer mask bits from SAM to the BMR. 
     3. Serially write a row of new window data into SAM. 
     4. Bit masked transfer from SAM to RAM. 
     5. Repeat steps 3-4 for each RAM row to contain the new window. 
     In the case of non-rectangular windowing (say, triangular) a similar, more time-consuming procedure is required. This procedure is illustrated in FIG. 2. 
     1. Serially input mask bits into SAM (FIG. 2A). 
     2. Transfer mask bits from SAM to the BMR (FIG. 2B). 
     3. Serially write a row of new window data into SAM (FIG. 2C). 
     4. Bit masked transfer from SAM to RAM (FIG. 2D). 
     5. Repeat steps 1-4 for each RAM row to contain the new window. 
     This architecture has some inherent speed limitations. For example, a window is generally less than the maximum columns wide, requiring only a partial row to be masked during bit masked transfer from SAM to RAM. However, prior art leaves no option for partially loading the BMR: an entire row must be loaded, regardless of window width desired. 
     Another limitation surfaces in non-rectangular windowing. Because the BMR has no address decode circuitry, it has no direct serial input and steps 1 and 2 in the above procedure become obligatory for every row in the new window. 
     Further, the DEC choice of mandetorily inverting data transferred out of the BMR hinders the versatility of the BMR&#39;s possible use as a storage register, similar to SAM. 
     A higher speed BMR architecture is desirable, having features to overcome the above limitations. 
     SUMMARY OF THE INVENTION 
     According to the inventive architecture, a BMR is provided which has its own input port, and which shares address decoding with SAM: when a SAM cell is selected, a corresponding BMR cell is simultaneously selected by the same address decode circuitry. 
     This architecture is high speed in that it allows simultaneous loading of new data into SAM and corresponding mask bits into the BMR to facilitate an application such as memory mapped video windowing. The invention also contains an automatic BMR clear feature that, coupled with the shared decode, increases loading speed of a partial row of mask bits. 
     The inventive architecture also is area-efficient because decode is shared. Because the BMR input is clocked by the same clock signal that clocks data into SAM, the only additional pins needed for this IC are the BMR input pins. 
     Optional true or complement transferring into and out of the BMR is also provided to enhance flexibility of use. 
     The combination of these features provide a high speed, area efficient BMR architecture with enhanced image processing utility. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows prior art BMR architecture. 
     FIGS. 2A, 2B, 2C and 2D illustrate the prior architecture in use. 
     FIG. 3 illustrates the inventive BMR architecture. 
     FIG. 4 details a one column wide slice of the inventive architecture. 
     FIG. 5 details a BMR cell in the inventive architecture. 
     FIGS. 6A, 6B and 6C illustrate the inventive architecture in use. 
     FIG. 7 illustrates BMR decode disablement for the slice of FIG. 4. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     A diagram of a preferred embodiment of the invention is shown in FIG. 3. What should be immediately apparent when compared to the prior art in FIG. 1 is that the invention includes shared decode circuitry and shared clocking (CLE) between the BMR and SAM, and the BMR has input means MSKINP. 
     A single-column slice of the inventive architecture is detailed in FIG. 4. Exemplary RAM cell 34 and sense amplifier 33 connect to folded bitlines C and C* (&#34;*&#34; indicates inversion). 
     The sense amplifier 33 compares potentials on the bitlines C and C* in a conventional manner. In the operation of the sense amplifier, if a RAM cell, such as RAM cell 34 is connected to its bit line, the stored logic state in the RAM cell 34 will cause its respective bitline C or C* (C in the case of cell 34) to go slightly higher or lower, as the case may be. The sense amp 33 then senses the potential difference between the bitlines C and C* and amplifies that difference. Since the sensed RAM cell 34 is gated on, that cell 34 is thereby refreshed with its logic state and the state of the bitline (in this case C) is set to the sensed logic state. Bitlines C and C* connect to busses B and B* through pass devices T5 and T6, mask devices T1 and T2, and mask disable devices T3 and T4, as shown. BMR cell 30 and SAM cell 31 also connect to B and B*, the BMR cell via I/O lines D and D*. Decode lines SD and SD&#39;, driven by shared decode circuit 32 simultaneously selects BMR cell 30 and SAM cell 31 in a given slice. BMR cell 30 drives mask devices T1 and T2 via line M, and has for inputs T, T*, CLR, MIO, MIO*, and L*. A low mask bit empowers masking through devices T1 and T2 during a transfer between RAM cell 34 and SAM cell 31 along busses B and B*. 
     FIG. 5 provides detail on BMR cell 30. At its heart is a mask bit latch 40 formed by opposing buffers A1 and A2 and enabled by latch signal L*. When shared decode outputs SD and SD&#39; are high, SAM cell 31 and corresponding BMR cell 30 are simultaneously selected, allowing a mask bit to be loaded into the latch by input lines MIO and MIO* via Q1 and Q2 at the same time data is loaded into SAM cell 31. MIO and MIO* derive their signal from MSKINP. Signal CLR clears the mask bit through device Q3, and is controlled in such a way that a mask bit latched in BMR cell 30 is automatically cleared after a bit masked transfer. Methods and circuits for this kind of control are easily done by those skilled in this art, and are therefore not detailed herein. 
     The BMR 30 is thus provided which has its own input ports MIO and MIO*, and which shares address decoding with SAM. When a SAM cell 31 is selected, a corresponding BMR 30 cell is simultaneously selected by the same address decode circuitry. 
     A sample windowing procedure will now be described, with reference to FIGS. 3, 4, 5, and 6. We wish to write a triangular window of data into the RAM map without disturbing existing data not circumscribed by the new window. A windowing procedure using the inventive architecture is given below. 
     1. Clear mask bits in the BMR (FIG. 6A). 
     2. Serially input new data into SAM, simultaneously inputting new mask bits into the BMR only at corresponding locations (FIG. 6B). 
     3. Bit masked transfer from SAM to RAM (FIG. 6C). Mask bits in the BMR are automatically cleared after this transfer (FIG. 6A). 
     4. Repeat steps 2-3 for each row containing new data. 
     By virtue of a shorter procedure, this architecture is faster for non-rectangular windowing than the prior art. Automatic clearing of the BMR (step 3, above) helps make this speed possible. For example, suppose a first row and then a second, shorter row are bit masked transferred into the map. In the preferred architecture, if the BMR was not automatically cleared after each transfer, mask bits originally set for the first row would still be active during the second bit masked transfer, making a BMR clearing step necessary. Controlling signal CIR to automatically activate after a bit masked transfer eliminates this slowdown. Automatic clearing also improves the preferred architecture&#39;s speed in that a partial row of data can be windowed because locations outside of the window are masked by default by the automatic clear. 
     If normal (non-masked) transferring is desired between RAM and SAM, BMR cell 30 (representative of the entire BMR) can be disabled by bringing MSKDIS high. This activates T3 and T4, which nullifies the effect of mask devices T1 and T2, regardless of the state of the mask bit on M. 
     As shown in FIG. 5, devices Q4-Q7 in the preferred architecture allow communication between busses B and B* and mask bit M and M*, via lines D and D*. Signals T and T* control this communication to be off, true, or complement. When T and T* are low, M is isolated from B and B*. When T is high and T* is low, M is connected to B via D and Q4, and M* is connected to B* via D* and Q5: true communication is accomplished between B and M. When T is low and T* is high, M is connected to B* via D* and Q7, and M* is connected to B via D and Q6: complement communication is accomplished between B and M. This inventive feature allows great flexibility in the use of the BMR. Not only can mask data be serially loaded (as in step 2 in the procedure above), it can also be loaded true or inverted into the BMR in parallel during a normal transfer operation. This increases BMR utility as a simple register with invertible outputs. 
     It is noted that since the BMR and SAM share the same address decode circuitry, the inventive architecture will function as already described in any serial input mode that the decode circuitry is designed to operate in, such as split transfer mode, for example, where a row half is serially written into SAM at the same time that the other row half is being transferred into RAM. 
     Since this architecture shares SAM decode circuitry with the BMR, circuit area is efficiently used. Because the BMR shares the SAM CLK input, no additional clock pins are required. The only extra pins required over the prior art are the BMR input pins, which will usually be singular in nature. It is noted here that an input to the BMR can be generated internal to the IC, if a default mask input value is chosen, say, `1` to automatically allow new SAM data to transfer unmasked through the BMR. However, bringing mask input external to the chip allows greater flexibility in masking operations. 
     To further increase speed, the architecture includes BMR decode disablement, so that when the BMR is not required, the decode circuitry is not loaded down by it, hence allowing SAM to be decoded faster. This is particularly useful during serial I/O to SAM when serial mask input mode is not desired. Therefore, BMR decode (SD&#39; in FIG. 4) is enabled only when the IC is in serial mask input mode. Otherwise, BMR decode SD&#39; is disabled. FIG. 7 illustrates how such disablement can be accomplished. When signal MDEC is high, representative of when the IC is in serial mask input mode, SD&#39; is enabled via device T7. When MDEC is low, MDEC* is high. SD&#39; is disabled and brought to ground via T8. 
     &#34;Serial mask input mode&#34; is the term used to describe the ability to serially input mask data directly to the BMR. When SAM is able to receive serially inputted data, the SAM is said to be in &#34;input mode&#34;. When SAM is configured to serially output data, the SAM is said to be in &#34;output mode&#34;.