PROCESS AND APPARATUS FOR STORING DATA

Abstract: In a process and apparatus for storing and retrieving data so as to facilitate performing a price look-up function, a scanner (18) and a retail terminal (20) at a checkout counter (12) are used in conjunction with a U.P.C. number on an article to be sold. A EPROM (36) at the scanner (18) is used to store a compressed article description which is stored by U.P.C. number. The EPROM address for a "matched" U.P.C. number is used to obtain the corresponding price data in a RAM (30) also located at the scanner, thereby assisting in reducing the time required to effect a PLU function.

Description: PROCESS AND APPARATUS FOR STORING DATA Technical Field This invention relates to processes of the kind for storing data to facilitate a price look-up function for a plurality of articles with each article having an identification code of a fixed number of data bits and also having an article description associated therewith. The invention also relates to a scanner for scanning a bar-coded label. Background Art In recent years, there has been a trend to place an identification code such as a U.P.C. (Universal Product Code) on merchandise to be sold. When a customer presents the merchandise to be purchased at a checkout counter, an operator moves the merchandise so that the associated U.P.C. data thereon is moved in operative relationship with a scanning unit with a retail terminal at the checkout counter. The U.P.C. data which is read is used to electronically obtain (from a host processor) the associated unit price and merchandise description which are then printed on a sales slip by the retail terminal, for example. In general, the unit price and merchandise or article description are stored in a memory at the host processor, and the scanner is used to obtain the U.P.C. data or code. The U.P.C. code from the scanner is transferred via the retail terminal to the host processor which then examines its memory to find a match by the U.P.C. code. The associated article description and price are then utilized by the retail terminal in a ' conventional way. Disclosure of the Invention It is an object of the present invention to provide a process and apparatus suitable for providing a fast data look-up function, and whereby a minimum amount of hardware may be employed in relation to the amount of records stored. Therefore, according to one aspect of the present invention, there is provided a machine process of the kind specified, characterized in that said identification code and said article description together form an entry having a further fixed number of data bits for each said article, and by the steps of: arranging said entries for said plurality of articles in numerical order by said identification codes; writing said entries from said arranging step in an erasable programmable read only memory (EPROM) while maintaining said numerical order, such that each entry has an entry address in said EPROM, and writing a price data entry in a random access memory (RAM) for each said article at a RAM address in said RAM which is related to the entry address in said EPROM for the associated said article. According to another aspect of the present invention, there is provided a scanner for scanning a bar-coded label incorporating an identification code associated with an article including reading means adapted to read said identification code, characterized by: an EPROM having a plurality of entries therein, with each said entry having an EPROM address, an identification code, and an article description therein; said entries being arranged in numerical order by said identification codes; in that said identification code and article description for each said entry contain a first predetermined number of bytes of data; in that each said EPROM address differs from an adjacent said EPROM address by said first predetermined number; and by a RAM having a plurality of price entries therein, with each said price entry being associated with one of said articles and having a RAM address associated therewith, each said price entry having a second predetermined number of bytes of data, and each said RAM address for a said price entry differing from an adjacent one of said RAM addresses by said second predetermined number. Brief Description of the Drawings One embodiment of the present invention will now be described by way of example, with reference to the accompanying drawings, in which: Fig. 1 is a schematic block diagram of a checkout counter which includes a scanner and a terminal which are connected to a host processor; Fig. 2 shows the layout of data in an EPROM and a RAM used with the scanner shown in Fig. 1; and Fig. 3 shows one embodiment of a process for performing a price look-up function. Best Mode for Carrying Out the Invention Fig. 1 shows an apparatus or system 10 in which this invention may be used. The system 10 includes a checkout counter shown in dashed outline 12 which is coupled to a main or host processor 14. There may be additional checkout counters, like 16, which are included in the system 10; however, it is not necessary to show them in complete detail for an understanding of this invention. The checkout counters 12 and 16 are frequently used in retail establishments like grocery stores, for example. Each checkout counter, like 12, includes a scanner, designated generally as 18, and a retail terminal, like 20. In general, the function of the scanner 18 is to read a Universal Pricing Code (U.P.C.) associated with the merchandise to be sold, and the function of the retail terminal 20 is to perform the general functions which were performed by a "cash register". In addition, the terminal 20 is coupled to the host processor 14 to perform additional accounting functions. In the embodiment described, the scanner 18 includes a scan unit 22 which reads the U.P.C. code printed on a container housing the merchandise to be sold or printed on a separate tag 24, for example. The scanner 18 also includes a display 26, a processor 28, a RAM 30, a ROM 32, and interface and control logic 34 which enable the scanner 18 to function as an intelligent terminal. The scanner 18 also includes an electrically alterable read only memory or EPROM 36 which is used in performing the price look-up function as will be described hereinafter. The retail terminal 20 (Fig. 1) includes a keyboard 38, a display 40, a printer 42, processor 44, RAM 46, ROM 48 and interface and control logic 50 to enable it to function as an intelligent terminal. The terminal 20 also includes an interface 52 which couples it to the host processor 14, and it also includes an interface 54 which couples it to the scanner 18. The software or programs for running the terminal 20 may be stored in the ROM 48 or they may be loaded into the RAM 46 from the host processor 14, for example. Additional scanners like 18-1 which are identical to scanner 18, and additional retail terminals like 20-1, which are identical to retail terminal 20, may be included in the system 10. Terminal 20 communicates through its interface 54 to the scanner 18 via the interface 56 associated with the scanner 18. In a prior art system, the scan unit 22 associated with the scanner 18 was used to obtain the U.P.C. code from the tag 24, and this data was forwarded via the terminal 20 to host processor 14 where the actual price look-up function was performed. The price and description for the merchandise associated with the tag 24 was then forwarded to the terminal 20 where it was displayed on the display 40 and the description of the merchandise was printed on a receipt by the printer 42. The description and price would be used by the terminal 20 for normal accounting functions. In some situations, the terminal 20 would forward the price to a display associated with the scanner where the customer would see the price of the merchandise being sold. The host processor 14 also performed accounting functions such as maintaining inventory totals of the articles associated with the U.P.C. codes. In the present embodiment, the price look-up function is performed in the scanner 18 itself. This assists in reducing the time taken for performing the price look-up function compared to prior art systems and methods. There are two general elements to be obtained in a price look-up function. The first is the price and the second is the general description of the merchandise or article to be sold. In general, the description of the article remains relatively fixed while the price of the article may need to be changed to reflect changing economic conditions. Accordingly, the system 10 utilizes an erasable programmable read only memory (EPROM) 36 (Fig. 1) for storing the description of the articles to be sold and a RAM 30 for storing the associated price which may change often. As mentioned above, the price look-up function is performed at the scanner itself without having to forward the U.P.C. code to the terminal 20 as was previously done; this feature brings about a considerable reduction in time for performing the price look-up function. The U.P.C. code is forwarded to the host processor 14 to effect inventory control operations; however, the price look¬ up function is performed at the scanner 18 itself. Fig. 2 shows the layout of the EPROM 36 and a portion of the RAM 30 used for performing the price look-up (P U) function. In the embodiment described, each 13 digit U.P.C. code expected in the system 10 is stored in seven packed binary coded decimal (BCD) bytes of eight bits each. The 20 character description is stored in eighteen packed ASCII bytes. The packing is effected, basically, by not using the parity bit which is usually a part of an eight bit ASCII character. Accordingly, the U.P.C. code and the character description take a combined 25 bytes of space in the EPROM 36. The first or real address for the first entry in the EPROM 36 is zero, with each subsequent entry having an address which differs by 25 from the immediately prior address as shown in Fig. 2. The portion of the RAM 30 shown in Fig. 2 contains the price data corresponding to each of the entries in the EPROM 36. The price data is stored in the RAM 30 in three packed BCD bytes, making available a price variation from $0.00 to $999.99 in the embodiment described. One nibble of the three packed BCD bytes is used as a special designator for application oriented purposes. For example, the nibble may be used to indicate a "price special" for the merchandise associated with the U.P.C. code. The correlation between entries in the RAM 30 and the EPROM 36 is effected by the following formula: Price address in RAM 30 = (UPC #Addr. in EPROM 36) X 3 25 Notice from Fig. 2 that each address in the EPROM 36 differs from an adjacent address by a first predetermined number which is 25 in the embodiment described. Notice also that each address in RAM 30 differs from an adjacent address by a second predetermined number which is 3 in the embodiment described. In arranging the data to be written into the EPROM 36, the U.P.C. code numbers are sorted in increasing numerical order and stored in a personal computer, for example, in the embodiment described, and thereafter, the data is conventionally written into the EPROM 36. Having the U.P.C. code numbers in numerical order facilitates accessing the data from the EPROM 36. For example, when a price look up (PLU) function is to be performed, the U.P.C. number from tag 24 is used to search for the U.P.C. number from the EPROM 36. This searching may be effected by a linear search by simply increasing the address by 25 in the embodiment described until a match is found. A preferred way of searching is to utilize a conventional binary search which is more efficient than the linear search mentioned. A binary search is effected, generally, by looking for a match at the mid point of a file. If no match occurs, the searching continues in either the first half or the second half of the file depending upon where the sought after data would logically be located. This process is repeated until a match is obtained for the sought after data. Once a match of U.P.C. number is found in the EPROM 36, the associated address for the corresponding price data in RAM 30 is found by utilizing the equation described earlier herein. The process for performing a PLU function is shown in Fig. 3. Starting at step 56, an operator at the checkout counter 12 moves the tag 24 on an item to be sold in operative relationship with the scan unit 22 of the scanner 18 to read the tag 24 as shown at step 58. The U.P.C. code number is obtained from the tag 24, as shown at step 60, and this number is used to search the EPROM 36 for the U.P.C. number, as shown at step 62 and as previously described. At step 64, a decision is made. If there is no match of U.P.C. number in the EPROM 36, a "Not On File" flag is set as shown at step 66. This "Not On File" flag along with the U.P.C. number are then sent to the host processor 14 where the PLU function is handled for the associated U.P.C. number not on file. If there is a match of a U.P.C. number in the EPROM 36 at step 64 in Fig. 3, an "On File" flag is set at step 68. Thereafter, the description of the matched U.P.C. number is obtained as shown at step 70, and the corresponding price is obtained from the RAM 30 as shown at step 72. The address in RAM 30 is obtained using the equation previously described. The description and the price obtained along with the U.P.C. number are then sent to the retail terminal 20, as at step 74, to complete the PLU function. If the particular scanner 18 used has a display, like 26, then the price would be sent to the display 26 concurrently with the complete data being sent to terminal 20. In the embodiment described, the EPROM 36 has a capacity of 256K bytes and the portion of the RAM 30 used for the PLU function described herein is 32K bytes. With this arrangement, 10,485 records may be stored as described herein to provide the PLU function. With the system 10 described, the PLU function takes about one millisecond to perform. The U.P.C. number which is utilized by the scanner 18 is also simultaneously forwarded to the host processor 14 for the performance of the normal inventory tallies of items sold.

Claims: CLAIMS 1. A machine process for storing data to facilitate a price look-up function for a plurality of articles with each article having an identification code of a fixed number of data bits and also having an article description associated therewith, characterized in that said identification code and said article description together form an entry having a further fixed number of data bits for each said article, and by the steps of: arranging said entries for said plurality of articles in numerical order by said identification codes; writing said entries from said arranging step in an erasable programmable read only memory (EPROM) (36) while maintaining said numerical order, such that each entry has an entry address in said EPROM (36), and writing a price data entry in a random access memory (RAM) (30) for each said article at a RAM address in said RAM (30) which is related to the entry address in said EPROM (36) for the associated said article. 2. A machine process according to claim 1, characterized in that said further fixed number of bits forms a first predetermined number of bytes, whereby each said entry address in said EPROM (36) differs from an adjacent entry address by said first predetermined number and in that each said price data entry is formed by a second predetermined number of bytes, whereby each said RAM address differs from an adjacent one of said RAM addresses by said second predetermined number. 3. A machine process according to claim 2, characterized in that said step of writing a price data entry includes the steps of: dividing the entry address in said EPROM (36) for a said article whose price data entry is to be written by said first predetermined number to obtain a quotient; and multiplying said quotient by said second predetermined number to obtain the associated RAM address. 4. A machine process according to claim 3, characterized in that said arranging step is effected by packing said identification code into seven packed BCD bytes and also packing said article description into eighteen packed ASCII bytes, and in that said writing step is effected by packing said price data entry into three packed BCD bytes. 5. A machine process for storing and retrieving data, characterized in that said storing is effected by a machine process according to any one of the preceding claims and in that said retrieving is effected by the steps of: obtaining an identification code for an article whose article description and price data are to be determined; searching said EPROM (36) for a match of said identification code from said obtaining step; utilizing the associated entry address of a said entry resulting from a said match from said searching step to obtain the associated price data in said RAM (30); and forwarding the associated said article description and said price data to a utilization device (14). 6. A machine process according to claim 4, characterized in that said step of obtaining includes scanning a label bearing said identification code with a scanner (18), and in that said scanner (18) includes said EPROM (36) and said RAM (30). 7. A scanner for scanning a bar-coded label (24) incorporating an identification code associated with an article including reading means (22) adapted to read said identification code, characterized by: an EPROM (36) having a plurality of entries therein, with each said entry having an EPROM address, an identification code, and an article description therein; said entries being arranged in numerical order by said identification codes; in that said identification code and article description for each said entry contain a first predetermined number of bytes of data; in that each said EPROM address differs from an adjacent said EPROM address by said first predetermined number; and by a RAM (30) having a plurality of price entries therein, with each said price entry being associated with one of said articles and having a RAM address associated therewith, each said price entry having a second predetermined number of bytes of data, and each said RAM address for a said price entry differing from an adjacent one of said RAM addresses by said second predetermined number. 8. A scanner according to claim 7, characterized by control means (28) adapted to receive a said identification code from said reading means (22), to search for a match of said identification code with one of said identification codes in said EPROM (36), to read the corresponding EPROM address associated with an entry for said match when found, to divide said corresponding EPROM address by said first predetermined number to generate a quotient, to multiply said quotient by said second predetermined number to generate a said RAM address for obtaining the associated price entry from said RAM, and also to forward the associated article description and asso¬ ciated price entry for said identification code read by said reading means to a utilization device (14). 9. A scanner according to claim 8, characterized in that each said identification code comprises seven packed BCD bytes, each said article description comprises eighteen ASCII bytes, and each said price entry comprises three packed BCD bytes.

Inventors: COLLINS DONALD ALEXANDER JR, DUELAND KARL EDWARD, COLLINS, DONALD, ALEXANDER, JR., DUELAND, KARL, EDWARD
Applicants: NCR CO, NCR CORPORATION
Application year: 1987
Main classification: G06F15
IPC codes: G07G1