MXPA01002619A - Management of data in a receiver/decoder - Google Patents

Management of data in a receiver/decoder

Info

Publication number
MXPA01002619A
MXPA01002619A MXPA/A/2001/002619A MXPA01002619A MXPA01002619A MX PA01002619 A MXPA01002619 A MX PA01002619A MX PA01002619 A MXPA01002619 A MX PA01002619A MX PA01002619 A MXPA01002619 A MX PA01002619A
Authority
MX
Mexico
Prior art keywords
data
memory
page
stored
decoder
Prior art date
Application number
MXPA/A/2001/002619A
Other languages
Spanish (es)
Inventor
Hongtao Liao
Denis Choulette
Original Assignee
Canal+Societe Anonyme
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 Canal+Societe Anonyme filed Critical Canal+Societe Anonyme
Publication of MXPA01002619A publication Critical patent/MXPA01002619A/en

Links

Abstract

In order to restrict data access in a receiver/decoder, a plurality of sets of access rights are assigned to the data, each set of access rights being assigned to at least one party. The data, the sets of access rights and an identifier for each party are stored in a memory of the receiver/decoder. The identifier of a party requesting access to the data is compared with the or each identifier stored in the memory, and the party provided with the set of access rights assigned thereto in the memory of the receiver/decoder.

Description

DATA MANAGEMENT IN A RECEIVER / DECODER DESCRIPTION OF THE INVENTION The present invention relates to data handling. In particular, the invention relates to the following aspects for handling data, for example, in a receiver / decoder: • registering the arborescence of stored data as files and directories in a memory; • transfer blocks of data between memory pages to allow "recent" data to be stored in the memory • restrict access to data in a receiver / decoder The term "receiver / decoder" used herein can connote a receiver for receiving either coded or uncoded signals, eg, television and / or radio signals, which may be broadcast or transmitted through some other means The term also connotes a decoder to decode received signals. / decoders may include an integral decoder with the receiver for decoding the received signals, for example, in a "cable box", said decoder operating in combination with a physically separate receiver, or said decoder including additional functions, such as a web browser, a video recorder, or a television. digital broadcasting system, the signals received are passed to a receiver / decoder and thence to a television set. As used herein, the term "digital television system" includes, for example, any satellite, terrestrial, cable or other system. The receiver / decoder can decode a compressed MPEG-type signal to a television signal for the television set. This can be controlled through a remote controller handset, through an interface in the receiver / decoder. The receiver / decoder is used to process the input bit stream, and may include a variety of application modules, which cause the receiver / decoder to perform a variety of control functions and other functions. The term MPEG refers to the data transmission standards developed by the International Standards Organization working group, "Motion Pictures Expert Group" and in particular, but not exclusively, the MPEG standard. 2 developed for digital television applications and established in ISO 13818-1, ISO 13818-2, ISO 13818-3 and ISO 13818-4. In the context of the present patent application, the term includes all variants, modifications or developments of MPEG formats applicable to the field of digital data transmission. Said receiver / decoder, as described above can have a variety of devices coupled thereto, such as a card reader for the user to pass an authorization card through it to confirm which services the authorized user is to use, a manual television receiver control pen, a television presentation unit, and a second card reader for use with bank cards to allow the user to perform banking functions from home. You can also have a variety of ports attached to it, for example, a modem for access to the Internet and for conducting banking transactions from home. With reference to Figure 1, the receiver / decoder includes a central processor 50 and associated memory volumes 54, 56 and 58. The memory volumes can be coupled directly to the central processor 50 or, as shown in Figure 1 can be coupled to the central processor on a bus 52. A variety of types of memory volumes are available. A major distinction between the different types of memory volume is between volatile or non-volatile memory. Volatile memory retains its contents only while energy is supplied to memory, losing its contents as soon as the power supply is disconnected, while the non-volatile memory retains its contents indefinitely even if its power supply is disconnected. Another main distinction is between writeable memory and read-only memory. Volatile memory is generally known as RAM, although there are several types of non-volatile memory. RAM memory You can usually write, although the read-only memory is known ROM. This last distinction is not necessarily unalterable. Any memory, of course, must be able to be written in some sense at least once, but some type of ROM memory may have its contents changed, albeit with some difficulty. In this way, there are memory types such as EEPROM (electrically erasable programmable read only memory); and Flash memory (instant). Different types of memory have different characteristics (for example, different read times and different costs), so it is usually desirable to use a combination of several different types in a single receiver / decoder, as illustrated in the Figure 1. Figure 2 illustrates the organization of data in a memory volume. The data is arranged in an arborescent arrangement of D directories and F files. As discussed in more detail below, each directory contains a list of addresses or bookmarks to direct all the files and / or directories associated with that directory to trace the tree structure. of the contents of the data. The arborescence of the data organization can be cataloged in terms of the various generations of a genealogical family tree, being formed of "children" and "parents". Each "parent", that is, each directory, contains an address for each of its "children", that is, the files and / or directories that are associated with that directory. For example, referring to Figure 2, directory D6 contains an address for your child, file F6. Directory D5 contains addresses for your children, directory D5 and file F5. The D2 directory contains addresses for each of your children, D3, D4 and D7. The arborescent arrangement of directories and files is constantly being reorganized by the central processor 50, for example, if a file is moved between directories and its address changed. When a file, such as file F5, is moved from directory D5 to directory D6, so that the arborescence of the data changes, then the directory from which the file was previously and directly descended, that is, directory D5 from which the file is now directly downloaded, that is, D6, must be modified to correct the location of the file. In this way, changing the arborescence of the data when the file is moved is a two-step process. Figure 3 (a) illustrates a first process for changing the arborescence of the data in a memory volume. In step one, an address for file F5 is written in directory D6, and step two, the address for file F5 is deleted from directory D5. Figure 3 (b) illustrates a second process for changing the arborescence of the data in a memory volume. In step 1, the address for file F5 is deleted from directory F5, and step 2, the address for File F5 is written in directory D6. In both processes, if the operating system falls between steps 1 and 2, then the arborescence of the data will no longer be recorded accurately. In the first process, the arborescence could be as shown in Figure 3 (a) (ii), with the addresses for the F5 file being stored in both the D5 and D6 directories. In other words, the F5 file has two parents. In the second process the arborescence could be as shown in Figure 3 (b) (ii), with no directory D5 nor the directory D6 storing an address for the F5 file. In other words, the F5 file is an "orphan". > The present invention seeks in one aspect to provide an improved system for tracking the arborescence of data in a memory volume, which can reduce the time required to update the tree when a file is moved and which can provide increased reliability. In a first aspect, the present invention provides a method for registering the arborescence of stored data as files and directories in a memory, said method comprises the step of storing together with each file and directory a directory identifier, if any, immediately preceding that file or directory in the arborescence of the data. This can provide a faster record of the arborescence of the data, since each file or directory contains an identifier of the immediately preceding directory, and not of identifiers of the directories and file that immediately follow the directory in the tree, as is conventional. In this way, the number of directories or files that must be modified when the arborescence of the data changes can be significantly less than in the conventional system; this is only necessary to change the identifier of the "father" stored in a "child", a one-step process, when the location of the child's address is changed. This is particularly useful in memory volumes, where write data is particularly time consuming, such as Flash memory. Since modifying the tree structure when a file or directory is moved is a one-step process, the problems associated with two-step processes, as identified above, can be avoided. The identifier preferably comprises a unique code assigned to the directory. In this way, the tree can be quickly changed by reading the code assigned to the new "parent" when a file or directory is moved, and storing this code in the file or directory. The identifier can be stored in an initiator of the file or directory. This provides a convenient location for the file or directory in the arborescence of the data. At least part of the data can be stored in a Flash memory volume. In this way, the data can be "extended" through two or more volumes of memory, for example, through a volume of Flash memory and a ROM memory volume. The data can also be stored in the aforementioned form exclusively in a volume of Flash memory. If at least part of the data is stored in a volume of Flash memory, a virtual tree of that part of the data is preferably recorded in a volume of RAM, and an initiator of a file is preferably stored in a dedicated block of data. the flash memory. The memory volumes can be provided in a receiver / decoder. Preferably, the stored identifier is changed when a file or directory is moved to immediately precede another directory. This provides a quick modification of the arborescence of the data when a file is moved. In a related aspect, the present invention provides an apparatus for recording the stored data tree as files and directories, said apparatus comprising means for storing, together with each file and directory, a directory identifier, if any, immediately preceding that. directory or file in the data tree. The storage media can be modalized through a central processor. The storage means can be adapted to store the identifier in an initiator of the file or directory. The apparatus can be provided in a combination with a volume of Flash memory and a volume of RAM. If so, the apparatus may also comprise means for recording or recording in the volume of RAM memory the arborescence of data stored in the Flash memory volume. The recording means can be conveniently provided by the central processor. The apparatus may further comprise means for changing the stored identifier when a file or directory is moved to immediately precede another directory. The means of change can also be conveniently provided by the central processor. This aspect of the invention also provides a receiver / decoder comprising an apparatus as was done previously. Flash memory is generally of the ROM type since it is not volatile. It is also intended to be used in a generally ROM-like manner, being read from, but not written towards. However, Flash memory can be written in, but only with some difficulty. Specifically, Flash memory is usually divided into two pages, typically each of many kilobytes in length. The change of one or more bits in a page of the Flash memory from 0 to 1 can only be done by deleting the page. In more detail, to reuse a block of Flash memory, a whole page has to be deleted, so that new data can be written in that block.
The information in the Flash memory is organized in blocks of substantial size. A block can comprise data, for example, permanent or semi-permanent information tables or a program or subroutine. Block sizes will normally be selected to be smaller than the size of the page (if a block is larger than a page, it will usually be easier for it to be divided into sub-blocks which are smaller than the size of the page). Typically, when Flash memory is updated, it is desirable to retain some of the information already in it. Therefore, it is required that the page to be updated be read in RAM to form an image of the page; this image in RAM after being updated by inserting any new information that is going to be introduced in the page. At the same time, you can remove any information on the page that is no longer required. The updated image can then be written back to Flash memory. To allow blocks of Flash memory to be searched for to use some kind of name or description, some type of block to locate or direct data structure must be maintained. To allow the blocks to be searched, it is known to maintain a separate block location data structure for each page of the Flash memory. A block location data structure is maintained at least partially in the external memory outside the same Flash memory, such as in a EEPROM memory. It has been found that according to the present invention this block location data structure that updates the Flash memory is required every change in its content. To write a new block requires that the Flash memory be updated; the removal of a block similarly requires updating. Although it is not necessary to physically remove the block, the block location data structure has to be updated to indicate that the block is no longer valid. Such a system for updating Flash memory has a number of disadvantages. First, an entire page of Flash memory must be copied into RAM to allow new data to be stored in Flash memory. Therefore, it is necessary to have a buffer in the RAM memory, which is the same size as the Flash memory page. ndly, it is necessary to have an EEPROM memory volume to store the block location data structure to identify the location and state of the blocks stored in the Flash memory. The present invention seeks, in a nd aspect, to provide an improved system for updating the contents of a Flash memory volume, which does not require the use of ROM or RAM memory to effect the update. In a nd aspect the present invention provides a method for transferring blocks of data between memory pages to allow new recent data to be stored in said memory, the memory comprising a plurality of pages, a plurality of said memory being designated as a source page comprising at least one valid block containing valid data and at least one invalid block containing invalid data, and at least one of the pages of the memory being designated as a transfer page, the method comprises the step of: copying the or each valid block of the source page to a transfer page, at least one of these blocks having a position on said transfer page different from its position on the source page; delete the source page. By altering the position of at least one valid block, the valid blocks can be arranged together, for example, at one end, such as the start, of the transfer page. This may allow enough space to store the new recent data that will be left at the other end of the transfer page. Preferably, the or each valid block is copied to the transfer page, such that the largest non-fragmented memory area is created on the transfer page to receive the new, recent data. In this way, this aspect of the present invention also provides a method for storing data in memory, said memory comprising a plurality of pages, a page of memory comprising a source page comprising at least one valid block containing valid data and at least one invalid block containing invalid data, and at least one of the pages of the memory being assigned as a transfer page that initially comprises only free blocks, the method comprises the steps of: copying the or each valid block of the source page on the transfer page, at least one of these blocks having a position on the page of transfer different from your position on the source page; delete the source page; and store the data on the transfer page. Preferably, the deleted source page is redesignated as a new transfer page. This may allow the aforementioned methods to be repeated when new data is to be stored in memory. This redesignation is preferably known immediately after the source page has been deleted. In a preferred embodiment, a page is designated as the source page depending on the cumulative size of the invalid blocks of the page. For example, the designated source page may be a page having at least one invalid block having a cumulative size equal to or greater than the size of the recent new data. This can ensure that there will be a enough space to store the data on the transfer page once the copying of the valid blocks to the transfer page has been completed. The blocks may have a variable size. This can provide a number of advantages over the use of fixed size blocks. Fixed size blocks typically have a size of dkbytes. If data that is 3kbytes in size is going to be stored in a fixed block, 2kbytes of memory will effectively be wasted. When using a block of variable size, the size of the block is determined only by the size of the data stored there, increasing the effective data storage capacity of the memory. By allowing valid variable-sized blocks to be moved, when a page is updated the blocks can be re-arranged on the transfer page so that the available capacity of the page is provided in an individual unused area of the page.
Preferably, the memory comprises a memory where the data can not be freely written, such as a volume of Flash memory. A valid block can be changed to an invalid block by changing the value of a flag of a bit stored in the block, preferably in the initiator of the block. By changing the value of the bit from 1 to 0, that is, by deleting the bit, the state change of the block stored in the Flash memory can be done without rewriting the entire page.
The memory may comprise a memory volume of a receiver / decoder, wherein the data may be downloaded from a stream of bits, preferably in the form of MPEG tables. This aspect of the present invention also provides an apparatus for transferring blocks of data between memory pages to allow new and recent data to be stored in said memory, memory comprising a plurality of pages, a page of said memory is designated as a page. source comprising at least one valid block containing valid data, and at least one invalid block containing invalid data, and at least one of the memory pages being designated as a transfer page, the apparatus comprises: means, such as central processor, to copy the or each valid block from the source page to the transfer page, at least said block having a position on the transfer page different from its position on the source page; and means, such as the central processor, to erase the source page. Access to the data stored in the memory of the receiver / decoder may be required by a number of parts. One of these parties is the author of the data, who may require access to the data to correct an error in the data or to replace the data with an updated version. Another one of these Parts is the provider of an interactive application, which uses the data. Although it is desired that said provider has access to the data in order to be able to read the data, thus allowing the interactive application to use the data, the author of the data may wish to prohibit the provider from overwriting the data with his own data. The provider may also wish to prohibit any access to the data, for example, by the manufacturer or owner of the receiver / decoder, thus maintaining the confidentiality of the data for these parties. The present invention seeks in a third aspect to provide a technique for restricting access to data in a receiver / decoder. In a third aspect, the present invention provides a method for restricting the access to data in a receiver / decoder having a memory, the method comprises the steps of: assigning a plurality of right-of-access groups to the data, each group of rights of access being assigned at least a part; store the data, access rights groups and an identifier for each part in the memory of the receiver / decoder; compare the identifier of a party requesting access to the data with the or each identifier stored in the memory; and provide the party with access rights group assigned to it in the memory of the receiver / decoder. In this way, by assigning a plurality of access rights to different parts before storing the data in the receiver / decoder memory, a secure aggregation of the data in the receiver / decoder can be provided. Preferably, the right access groups are stored in an initiator for the data. This can provide a convenient location of the access rights for the data.
One or more identifiers for the parts can also be stored in the initiator for the data. The data may be downloaded from a bit stream transmitted through a transmission system, the access rights groups and identifiers for the parts being stored within the data in the transmission system. Thus, this aspect of the present invention extends a method for restricting access to data broadcasting in a digital broadcasting system, the method comprising the steps of, in a transmission system: assigning a plurality of rights groups of access to the data, each group of access rights being assigned at least one part; store groups of access rights and identifiers for the parties within the data; and transmit the data; and, in a receiver / decoder having a memory, li comprises the steps of: downloading and storing the transmitted data in the memory of the receiver / decoder; compare the identifier of a party requesting access to the data with the identifiers stored in the memory; and providing the party with the group of access rights assigned to it in the memory of the receiver / decoder. The data can be transmitted in any suitable form, such as in a digital data stream. An additional group of access rights may be assigned to at least one part, whose identifier is not stored in the memory of the receiver / decoder, said party requesting access to the data providing it with the additional group of access rights. In this way, an unknown or unfavorable party can be prohibited from accessing the data through the selection of an appropriate group of access rights. A particular group of access rights can be assigned to only one party. Preferably, this part is the author of the data. In this way, the author of the data can be assigned a separate group of access rights, which can allow all the right to data by the author. A particular group of access rights can be assigned to a group of parts, identifiers for each member of the group that is stored in the memory of the receiver / decoder. In this way, by providing a group of access rights to a group of parties, the number of groups of access rights you need to be assigned, can be reduced. Preferably, a group of access rights is used to determine whether a party is prohibited from reading the data. A group of access rights can also be used to determine if a party is prohibited from overwriting the data. The data can be stored in a flash memory volume of the receiver / decoder. This aspect of the present invention also extends to an apparatus for restricting access to the data stored in a receiver / decoder memory, a plurality of access rights group being assigned to the data, each group of access rights being assigned to at least one part, an identifier for each part being stored in the receiver / decoder, the apparatus comprises: means, such as a central processor, for comparing the identifier of a party requesting access to the data with the identifiers stored in the memory; and means for providing the party with the group of access rights assigned thereto in the memory of the receiver / decoder. The central processor can also provide the party with its assigned group of access rights.
This aspect of the invention also provides a receiver / decoder comprising a memory for storing data, a plurality of groups of access rights assigned to the data and an identifier for each part, and the device to restrict access to the data as mentioned above. The receiver / decoder may further comprise a security module for storing the identifiers for the parts. The receiver / decoder may further comprise a receiver for receiving a stream of bits including said data, groups of access rights and identifiers, and means, such as a demultiplexer and decoder for downloading said data, groups of access rights and the identifiers towards the memory. The receiver / decoder is preferably arranged to download MPEG tables. This aspect of the present invention also provides a transmission system comprising: means for assigning a plurality of groups of access rights to the data, each group of access rights being assigned to at least one part; means for storing access rights and identifiers for the parties within the data; and means, such as a transmitter, for transmitting a stream of bits including said data. The allocation means and the storage means of the transmission system can be provided with a processing unit of the transmission system. The means of allocation can be adapted to assign an additional group of access rights to parts whose identifiers are not stored in the memory of the receiver / decoder. The allocation means can also be adapted to assign a group of access rights to a group of parties, identifiers for each member of the group that is being stored in said data. This aspect of the present invention also provides a combination of a receiver / decoder as mentioned above, and a transmission system as mentioned above. Various functions of the receiver / decoder can be implemented in the hardware, for example, in a dedicated integrated circuit; this can provide an improved speed of operation. Preferably, however, at least some of the functions are implemented in the software, preferably implemented through processing means that operate the applications; this can allow greater flexibility, require fewer components, and allow the receiver / decoder to be updated more easily. Any of the above aspects can be combined together with any appropriate combination. Aspects of the apparatus can be applied to aspects of the method, and vice versa. Preferred aspects of the present invention will now be described by way of example, with reference to the drawings, in which: Figure 1 is a schematic diagram of a known arrangement of memory volumes in a receiver / decoder; Figure 2 illustrates a previous arborescent organization of data in a memory volume; Figure 3 (a) illustrates a previous process for changing the data tree in a memory volume; Figure 3 (b) illustrates another prior process for changing the data tree in memory volume; Figure 4 is a schematic diagram of a digital television system; Figure 5 is a schematic diagram of the structure of a receiver / decoder of the system of Figure 4; Figure 6 illustrates the layout of a page of Flash memory; Figure 7 illustrates an initiator of a block of a Flash memory page; Figure 8 illustrates the contents of an initiator block of a file stored in Flash memory; Figure 9 illustrates the arborescence of data stored in Flash memory; Figure 10 illustrates the contents of the access mode field in an initiator block; Figure 11 is a flowchart illustrating a method for copying a block of valid data from one page of Flash memory to another; Figure 12 is a flow chart illustrating a method for copying blocks of data from one page of Flash memory to another; and Figure 13 illustrates the entire effect of the method illustrated in Figure 12. A summary of a digital television system 1 is shown in Figure 4. The system includes a very conventional digital television system 2 using the MPEG compression system -2 known to transmit compressed digital signals. In more detail the MPEG-2 compressor 3 in a broadcasting center receives a digital signal stream (typically a stream of video signals). The compressor 3 is connected to a multiplexer and mixer 4 through the link 5. The multiplexer 4 receives a plurality of additional input signals, assembles the transport current and transmits compressed digital signals to a transmitter 6 of the broadcasting center through the link 7, which, of course, can have a wide variety of forms including telecommunications links. The transmitter 6 transmits electromagnetic signals through the uplink 8 to a satellite transponder 9, where they are electronically processed and broadcast via the notional downlink 10 to a terrestrial receiver 12, conventionally in the form of a proprietary or rented dish by the end user. The signals received by the receiver 12 are transmitted to a integrated receiver / decoder 13 owned or rented by the end user and connected to the television set 14 of the end user. The receiver / decoder 13 decodes the compressed MPEG-2 signal to a television signal for the television set 14. Of course, other transport channels for the transmission of the data are possible, such as terrestrial broadcasting, cable transmission, links combined satellite / cable, telephone networks, etc. In a multi-channel system, the multiplexer 4 handles audio and video information received from a number of parallel sources and interacts with the transmitter 6 to broadcast the information along a corresponding number of channels. In addition to audiovisual information, you can enter messages or applications or any other type of digital data in some or all of these channels interspersed with the audio and digital video information transmitted. A conditional access system 15 is connected to the multiplexer 4 and the receiver / decoder 13, and is located partially in the broadcasting center and partially in the decoder. This allows the end user to access digital television broadcasts from one or more broadcasting providers. A smart card, capable of deciphering messages in relation to commercial offers (ie, one or more of television sold by the broadcasting provider), may be inserted in the receiver / decoder 13. Using a decoder 13 and the smart card, the end user can buy commercial offers either in a subscription mode or on a pay-per-event basis. As mentioned above, the programs transmitted by the system are mixed in the multiplexer 4, the conditions and cryptic encoding keys applied to a given transmission being determined by the access control system 15. The transmission of data mixed in this manner is well known in the field for television payment systems. Typically, the mixed data is transmitted together with a control word to decompile or separate the data, the same control word being cryptically encoded by a so-called exploitation key and transmitted in cryptically encoded form. The mixed data and the cryptically encoded control word are then received by the decoder 13 having access to an equivalent to the operating key stored in a smart card inserted in the decoder to cryptically decode the control word encoded cryptically and then decompile the data transmitted. A payment subscriber will receive, for example, in a Title Control Message, monthly broadcast ECM, the operating key necessary to cryptically decode the control word encoded cryptically in order to be able to view the transmission. An interactive system 16, also connected to multiplexer 4 and to the receiver / decoder 13 and again located partially in the broadcasting center and partially in the decoder, allows the end user to interact with several applications through a return channel by modem 17. The modem return channel may also be used for communications used in the conditional access system 15. An interactive system may be used, for example, to allow the viewer to communicate immediately with the transmission center to demand authorization to view a particular event, download an application, etc. Referring to Figure 5, the elements of the receiver / decoder 13 or cable box will now be described. The elements shown in this Figure will be described in terms of functional blocks. The decoder 13 comprises a central processor 20, including associated memory elements and adapted to receive input data from a serial interface 21, a parallel interface 22, a modem 23 (connected to the modem return channel 17 of Figure 4) , and switch contacts 24 on the decoder front panel. The decoder is further adapted to receive inputs from an infrared remote control 25 through a control unit 26 and also has two smart card readers 27, 28 adapted to read bank or subscription smart cards 29, 30 respectively. The smart card reader of subscription 28 allows an inserted subscription card 30 and a conditional access unit 29 to supply the necessary control word to a demultiplexer / demixer 30 to allow the encrypted broadcast signal to be viewed separately. The decoder also includes a conventional tuner 31 and demodulator 32 for receiving and demodulating the satellite transmission before being filtered and demultiplexed by the unit 30. In the case of received audio and video signals, the MPEG packets containing these signals will be demultiplexed and filtered in order to pass audio and video data in real time in the form of an elementary packet stream (PES) of audio and video data to dedicated audio and video processors and decoders 33, 34. The output The converted audio processor 33 passes to a preamplifier 35 and then through the audio output of the receiver / decoder. The converted output of the video processor 34 passes through a graphics processor 33 and encoder 37 PAL / SECAM to the video output of the receiver / decoder. The processing of data within the decoder is generally handled by the central processor 20. The central processor 20 provides a platform that has considerable flexibility to handle an application to communicate with a variety of devices. As used in this description, an application is a piece of computer code for controlling high-level functions preferably of the receiver / decoder 13. For example, when the end user places the focus of the remote control 25 on a button object seen on the screen of the television set 14 and presses a key of validation, the instruction sequence associated with the button is operated. An interactive application proposes menus and executes commands in the end user's request and provides data regarding the purpose of the application. The applications can be either resident applications, that is, stored in the ROM (or non-volatile memory Flash or other memory) of the receiver / decoder 13, or broadcast and downloaded to the RAM or flash memory of the receiver / decoder 13. The applications they are stored in memory locations in the receiver / decoder 13 and represented as resource files. The resource files comprise graphical object description unit files, variable block unit files, instruction sequence files, application files and data files, as described in greater detail in the aforementioned patent specifications. . With reference to Figure 1, since the conventional receiver / decoder contains memory divided into a RAM volume 54, a Flash volume 58 and ROM volume 56, but this physical organization is distinct from the logical organization. The memory can also be divided into memory volumes associated with the various interfaces From one point of view, memory can be considered as part of the hardware; from another point of view, the memory can be considered to support or contain the entire system shown in addition to the hardware. Flash memory 58 is divided into pages, typically each of many kilobytes in length. The data is stored in Flash memory in the form of data blocks. Figure 6 illustrates the layout of a page of Flash memory. The page 70 comprises an initiator 72 with a length of 12 bytes, and blocks 74 of variable length. A block 74 has a size that is determined by the size of the data that is stored in the block. Initiator 72 on page 70 contains, among other things, the number (NO 76) of the Flash memory page, and the state (STATUS 78) of the page. A page can take one of the two stable states: (i) a state of EMPTY, when the page contains only empty blocks; and (ii) a status of VALID, when the page contains one or more blocks of data. Flash memory 58 contains at least one page that has a VACUUM status. A page can also take one of the three temporary states during the copying of the contents of a page to another page (as discussed in detail later): (i) a state of WRITING, when the contents of a page are going to be copied to that page from another page; (ii) a status of NEW, when the copying to that page has been completed; and (iii) a status of INVALID, when the copying of the contents of that page to another page has been completed. With reference to Figure 7, each block 74 includes an initiator 80 with a length of 16 bytes. Initiate 80 includes the following fields: (i) an identification (ID82) in the form of a unique number assigned to the file to which the block refers; (ii) the size (SIZE 84) of the block; (iii) the identification of rank (RANGE 86) of the block; (iv) the state (STATE 88) of the block. RANGE 86 provides a unique identifier that when a file is divided into a plurality of blocks, each of these blocks is assigned a respective range identification. RANGE 86 also serves to specify the position of the block within the file. The block that has a RANGE = 0 comprises an initiator block for the file. The initiator block does not include any of the file's departure data, but rather includes a number of file attributes. Figure 8 illustrates the contents of an initiator initiator block 90 of a file. The initiator block 90 comprises a initiator 80, whose RANK 86 is set to 0. Initiator block 90 includes a parent ID field 92. Parent ID field 92 contains ID 82 of the "parent" file in arch structure of stored directories and files in Flash memory 58. Figure 9 illustrates an example of the arborescent structure of blocks stored in Flash memory 58. The blocks comprise directory blocks and initiator blocks D, and data blocks F containing the file's departure data. A directory block is an initiator block, such as block D2, which is not directly associated with a file, but serves to act as a locator for other directory or initiator blocks. After the start of the receiver / decoder, the arborescence of the data stored in the Flash memory 58 is read and a summary of the tree in the RAM volume 54 is stored in the form of a diagram or any other convenient form. The tree structure is determined by reading ID 82 and RANGE 86 of each data block, and ID 82, RANGE 86 and parent ID 92 of each directory block and initiator block. For example, the initiator block D1 has ID = 1, RANGE = 0, and the parent ID = 0 (since there is no "parent"). The file block F3 has ID = 1 and RANGE = 1. The directory block D4 has ID = 4, RANGE = 0 and parent ID = 1 (since its "parent" is the initiator block D1 having an ID = 1). Initiator block D5 has ID = 5, RANGE = 0 and parent ID = 2.
In this way, the arborescence of the data can be generated quickly, since only up to 3 data fields of each block must be read to generate the tree. In addition, when a block of initiator and associated data blocks are moved within the data tree, it is only necessary to write the new parent ID in the initiator of the initiator block. For example, if the initiator block D17 and the associated data blocks F20, F21 and F22 were moved so that the parent of the initiator block D17 became the initiator block D15, only the parent ID may need to be amended. from primer trigger D17 to parent ID = 15. No identification of the ancestor initiator of the previous direct trigger block D17, ie, block D14, or of the initiator of the new direct ancestor of primer block D17, ie, the block D15, it is required. When the arborescence of the data stored in the Flash memory changes, the diagram stored in the RAM volume 54 is updated. As discussed above, the data can be stored in the receiver / decoder either in an individual memory volume or through a plurality of memory volumes. The above-described tree organization of data in the Flash memory, where the initiator blocks refer to its parent, is also applicable for data stored in ROM, RAM or any combination of ROM, RAM and memory Flash. However, the improvements provided by this new arborescent data organization are very important in the data stored in the Flash memory, where the time taken to rewrite the data stored in it is May. In this way, the data stored in the RAM and ROM can alternatively be stored in the flash memory with the above arborescent arrangement described with reference to Figs. 2 and 3. Referring back to Fig. 8, the initiator block 90 includes an Attributes field 93, in which it indicates whether the block is a directory block or an initiator block. The initiator block 90 includes an Access mode field 94, a Proprietary field 96 and a Group 98 field. These three fields allow access to the file through several parts that will be equally or completely restricted. The Owner field 96 contains an ID identification, from the file's author. The Group 98 field contains an ID group ID, for authorized users of the file. For example, if the file refers to a program for a smart card reader, the authorized user of the file will include the providers of interactive applications that use the program. The identifications, IDs of each authorized user of the file are stored in a security module in the receiver / decoder.
The contents of the Access 94 field determine the degree to which access to the file is allowed through the author of the file, as specified in the Owner 96 field, an authorized user of the file, as specified in the Group 98 field, and others, such as the manufacturer of the receiver / decoder and a user of the receiver / decoder. Figure 10 illustrates the Access mode field 94, in more detail. Field 94 comprises six bits, two bits 100, 102 assigned to the author, two bits, 104, 106, assigned to authorized users, and two bits 108 and 110 assigned to others. The bit values 100, 104 and 108 determine whether the reading of the file is prohibited by the author, the authorized users and others respectively, and the bit values 102, 106 and 110 determine whether it is forbidden to overwrite the file by the author, the authorized users and others, respectively. In the example shown in Figure 10, overwriting the file by authorized users is prohibited, as is any reading or overwriting of the file by others. The field contents of Access mode 94, Owner field 96 and Group field 98 are set before storage of the file in the receiver / decoder. If the file is to be transmitted to the receiver / decoder by the transmitter 6 of the broadcasting center, the contents of the aforementioned fields can be set at the broadcasting center before transmission. Alternatively, the contents of these fields can be set by the author after writing the file.
When access to a file is required, the one who accesses identifies himself with his identification, ID. The central processor 50 determines whether the ID of the accessor corresponds to the ID stored in the Owner 96 field. If so, the accessor is identified as the author of the file to which the group of access rights contained in it is assigned. bits 10, 100 and 102. In the example shown in Figure 10, the reading and overwriting of the file by the author is allowed by the central processor 50. If the one accessing is not the author of the file, the central processor 50 refers to the security module to determine if the ID of the user is a member of the group of authorized users specified in the Group 98 field, if so, the user is identified as an authorized user of the file to whom it is assigned the group of access rights contained in bits 104 and 106. In the example shown in Figure 10, the authorized user is only allowed to read the file through the central processor 50. If the one accessing is not a user it authorizes of the file, then the person accessing it is identified as an "other" to whom the group of access rights contained in bits 108 and 110 is assigned. In the example shown in Figure 10, any access to the file by of the person accessing is prohibited by the central processor. The values of bits 100 to 110 can only be changed by overwriting the file. In the example shown in Figure 10, only the author of the file is allowed to overwrite the file. In this manner, the provision of the Access mode field 94 is the Owner field 96 and the Group 98 field in the initiator block 90 of the file provides a simple but effective security system for the file. Referring to Figure 8, the initiator block 90 also includes a Version 112 field, which contains the version number of the file and a Name 114 field which contains the file name in ASCII code. Referring again to Figure 7, the field of STATUS 88 of a block of a page of the Flash memory can take one of the three stable states: (i) a FREE state, when the block is empty; (ii) a status of INVALID, when a new version of the block has been copied to another page of the Flash memory, or when the file has been deleted; and (iii) a status of VALID, when a previous version of the block has been set to an INVALID state. The STATE field 88 includes a one-bit flag which indicates whether the block is VALID or INVALID. If this one-bit flag has a value of 1, the block is VALID, and if the flag has a value of 0, the block is INVALID. Therefore, when the state of a block is going to be changed from VALID to INVALID, this bit is eliminated. In this way, in Flash memory, this change of state of a block can be registered without having to go back to write the entire page of Flash memory. Only in the usual way the last block of the page is in the FREE state and represents the amount of memory space available to store recent data on that page. A block can also take one of the three temporary states during the writing of the contents of the block, or the copying of the contents of the block, through RAM, to another page (as discussed in detail later): (i) a state of CREATE, when the initiator of the block is being written; (ii) a state of WRITING, when the rest of the contents of the block are being written; and (iii) a status of NEW, when the block has been completed writing or copying additional blocks from the file has yet to be completed. Figure 11 illustrates the process for copying a single VALID block from a first page to a FREE block on a second page. In step 100, the state of the FREE block on the second page is changed to CREATE, while the initiator of the VALID block is being copied, via RAM, to that block. In step 102, the state of the CREATE block is changed to WRITE while the contents of the VALID block are being copied. In step 104, the state of the WRITE block is changed to NEW when the copying of the contents of the block has been completed. In step 106 it is state of the VALID block copied from the first page is changed to INVALID. Finally, in step 108, the state of the NEW block on the second page is changed to VALID. Assigning a NEW state, instead of a VALID state, to the WRITE block in step 104, when the copying of the contents of the block has been completed, it is ensured that none of the two blocks of VALID have the same ID and RANGE at Same time. This removes the possibility that two of these VALID blocks exist if the operating system were to fall between steps 104 and 106. If such a fall occurred during the copying of the data block from one page of the Flash memory to another, when turning on the operating system verifies the presence of any NEW block in Flash memory. If a NEW block is located, the operating system looks for a VALID block having the same RANK and ID. If said VALID block is located, the status of the NEW block is changed to INVALID, if not, the state of the NEW block is changed to VALID. This ensures that none of the two VALID and FREE blocks having the same RANGE and ID are retained in memory without having to rewrite any of the Flash memory pages. When a plurality of VALID blocks having the same ID are to be copied from a first page to a second page, the copying of the first VALID block is suspended after step 104 has been completed. The copying of each of the Subsequent VALID blocks are performed by returning to step 104. Then, the states of all VALID blocks copied from the first page are changed to INVALID, and the states of the NEW blocks on the second page are changed to VALID. If a fall occurs during the copying of a plurality of data blocks from one page of the Flash memory to another, when the operating system is booted, the presence of any NEW block in the Flash memory is checked. If a plurality of NEW blocks is located, the operating system searches for the corresponding blocks of VALID and INVALID having the same RANGE and ID. If all the corresponding blocks are VALID, the status of each of the NEWs is changed to INVALID. If it is not, that is, the state of at least one of the corresponding blocks is INVALID, the status of each of the remaining VALID blocks is changed to INVALID and then the status of each of the NEW blocks is changed. to VALID. As mentioned above, one of the pages in the Flash memory is kept in a VACUUM state. Meanwhile, all the remaining pages of the Flash memory will be filled with VALID and INVALID data blocks, and in this way it will be necessary to effectively remove one or more of the INVALID data blocks, to provide enough space for a block containing data Recent However, the data part blocks can not be overwritten with new data; a whole page of Flash memory can be erased to allow the page to be used again. In order to provide enough space for a new file to be written to the Flash memory, in a revision of the VALID blocks only of one VALID page are copied, via RAM, to a blank page, the INVALID blocks of the page VALIDA are not copied to the VACIO page. The VALID blocks are copied in such a way that at least one of the blocks has a position in the VACUUM machine, which is different from its position in the VALID page. For example, VALID blocks can be copied at the top of the VACIO page. By repositioning the VALID blocks after copying, the largest non-fragmented memory area on the VACIO page can be created, leaving enough space, for example, at the bottom of the page to store the recent data. The contents of the VALID page are deleted, the VACIO page becomes a VALID page and the previous VALID page becomes the VACIO page. A method of "cleaning" the contents of the Flash memory when recent data is to be stored in the Flash memory, is described in detail below, with reference to Figures 12 and 13. In step 200, the central processor 50 checks the initiators 80 of each of the blocks 74 of each the VALID pages of the Flash memory in order to identify the page VALID where the cumulative size of the INVALID blocks is the largest. In step 202, the identified VALID page is selected. In step 204, the state of the empty page is changed from EMPTY to WRITE, and the number of the selected VALID page is temporarily stored in the initiator of the WRITE page. In step 206, the central processor 50 determines whether there are VALID blocks in the VALID page. If there is one or more VALID blocks on the VALID page, in step 208, the first VALID block is copied, via RAM to the WRITE page. In step 210, the central processor 50 determines if there are any more blocks of VALID on the VALID page. If there is a second block of VALID, in step 212 the second block of VALID is copied, via RAM, to the WRITE page directly below the VALID block previously copied on the WRITE page. The steps 210 and 212 are repeated as necessary until the central processor 50 determines that there are no more VALID blocks on the VALID page. Then, in step 214, the state of the WRITE page is changed to NEW. In step 216, the state of the VALID page is changed to INVALID. In step 218, the status of the NEW page is changed to VALID, and finally in step 220, the INVALID page is deleted and the state of the deleted page is changed to VACUUM, so that once again there is at least one VACUUM page of the Flash memory. The entire effect of the previous method is summarized in Figure 13.
In this preferred mode, the VALID V blocks of the VALID page are effectively moved to the top of the VACIO page in order to provide storage space on the VACIO page for recent data at the bottom of the page, once the status of the VACIO page has been changed to VALID. It will be understood that the present invention has been described purely by way of example, and that modifications to detail within the scope of the invention can be made. Each aspect described in the description, and (if appropriate) the claims and drawings may be provided independently or in any appropriate combination.

Claims (53)

1. A method for restricting access to data in a receiver / decoder having a memory, the method comprises the steps of: assigning a plurality of groups of access rights to the data, each group of access rights being assigned to at least a part; storing data, groups of access rights and an identifier for each part in a receiver / decoder memory; compare the identifier of a party requesting access to the data with the or each identifier stored in the memory; and providing the part with the group of access rights assigned to it in the memory of the receiver / decoder.
2. A method according to claim 1, wherein the groups of access rights are stored in an initiator for the data.
3. A method according to claim 1 or 2, wherein the identifiers for the parts are stored in an initiator for the data.
4. A method according to any of the preceding claims, wherein the data is downloaded from a stream of bits transmitted through a transmission system, the groups of access rights and identifiers for the parts being stored within the data in the transmission system.
5. A method of restricting access to broadcast data in a digital broadcasting system, the method comprising the steps of, in a transmission system; assigning a plurality of groups of access rights to the data, each group of access rights being assigned to at least one part; store groups of access rights and identifiers for the parties within the data; and transmit the data; and, in a receiver / decoder having a memory, it comprises the steps of: downloading and storing the data transmitted in the memory of the receiver / decoder; compare the identifier of a party requesting access to the data with the identifiers stored in the memory; and providing the party with the group of access rights assigned thereto in the memory of the receiver / decoder.
6. A method according to claim 5, wherein the data is transmitted in a digital data stream.
A method according to any one of the preceding claims, wherein an additional group of access rights is assigned to at least one part, whose identifier is not stored in the memory of the receiver / decoder, said part requesting access to the data that is being provided with the Additional group of access rights.
8. A method according to any of the preceding claims, wherein a particular group of access rights is assigned to only one party, preferably the author of the data.
9. A method according to any of the preceding claims, wherein a particular group of access rights is assigned to a group of parties, the identifiers for each of the group members being stored in the memory of the receiver / decoder.
A method according to any of the preceding claims, wherein a group of access rights is used to determine whether a party is prohibited from reading the data.
11. A method according to any of the preceding claims, wherein a group of access rights is used to determine whether a party is prohibited from overwriting the data.
12. A method according to any of the preceding claims, wherein the data is stored as files and directories in the memory of the receiver / decoder.
13. A method according to claim 12, wherein the arborescence of the files and directories is recorded in the memory of the receiver / decoder.
14. A method according to claim 13, wherein a directory identifier, if any, immediately preceding a file or directory in the arborescence of the data, is stored in association with that file and directory.
15. A method according to claim 14, wherein the The identifier is stored in an initiator of that file or directory.
16. A method according to any of the preceding claims, wherein the data is stored in a flash memory volume of the receiver / decoder.
17. An apparatus for restricting access to data stored in a memory of a receiver / decoder, a plurality of groups of access rights being assigned to the data, each group of access rights being assigned to at least a part, an identifier for each part being stored in the receiver / decoder, the apparatus comprises: means for comparing the identifier of a party requesting access to the data with the identifiers stored in the memory; and means for providing the party with the group of access rights assigned thereto in the memory of the receiver / decoder.
18. A receiver / decoder comprising a memory for storing data, a plurality of groups of access rights assigned to the data and an identifier for each part, and the apparatus for restricting access to data according to claim 17.
19. A transmission system comprising; means for assigning a plurality of groups of access rights to the data, each group of access rights being assigned to at least one part; means for storing access rights and identifying the parts within the data; and means for transmitting a stream of bits indicating said data.
20. A combination of a receiver / decoder according to claim 18 and a transmission system according to claim 19.
21. A method for registering the arborescence of stored data as files and directories, the method comprises the step of storing in association with each file and directory an identifier of the directory, if any, immediately preceding that file or directory in the arborescence of the data.
22. A method according to claim 21, wherein the identifier comprises a unique code assigned to the directory.
23. A method according to claim 21 or 22, wherein the identifier is stored in an initiator of the file or directory.
24. A method according to claim 23, wherein at least part of the data is stored in a volume of Flash memory, preferably entirely within the Flash memory volume.
25. A method according to claim 24, wherein a virtual arborescence of the data stored in the Flash memory volume is created and stored in a RAM memory volume.
26. A method according to claim 24 or 25, wherein the initiator of a file stored in the Flash memory volume is stored in a dedicated block of the Flash memory.
27. A method according to any of claims 21 to 26, wherein the stored identifier is changed when a file or directory is moved to immediately precede another directory.
28. A method according to any of claims 21 to 27, wherein the data is stored in a receiver / decoder.
29. An apparatus for recording the arborescence of stored data as files and directories, the apparatus comprises means for storing in association with each file or directory an identifier of the directory, if any, immediately preceding that file or directory in the arborescence of the files. data.
30. A receiver / decoder comprising the apparatus of according to claim 29.
31. A method for transferring blocks of data between memory pages to allow new or new data to be stored in said memory, the memory comprising a plurality of pages, a page of the memory being designated as a page. of a source comprising at least one valid block containing valid data, and at least one invalid block containing invalid data, and at least one of the pages of the memory being designated as a transfer page, the method comprises the steps of : copy the or each valid block from the source page to the transfer page, at least one block having a position on the transfer page different from its position on the source page; and delete the source page.
32. A method according to claim 31, wherein the data is subsequently stored next to the valid blocks copied on the transfer page.
33. A method for storing data in memory, said memory comprising a plurality of pages, a page of memory comprising a source page comprising at least one valid block containing valid data and at least one invalid block containing invalid data, and at least one of the pages of the memory being designated as a transfer page that initially comprises only free blocks, the The method comprises the steps of: copying the or each valid block from the source page to the transfer page, at least one block having a position on the transfer page different from its position on the source page; delete the source page; and store the data on the transfer page.
34. A method according to any of claims 31 to 33, wherein the or each valid block is copied to the transfer page in such a way that it creates the largest, non-fragmented memory area on the transfer page to receive recent data.
35. A method according to any of claims 31 to 34, wherein the deleted source page is re-designated as a new transfer page, preferably immediately after its deletion.
36. A method according to any of claims 31 to 35, wherein a page is designated as a source page depending on the cumulative size of the invalid blocks of the page.
37. A method according to claim 36, wherein the source page is a page having at least one invalid block, at least that invalid block having a cumulative size equal to or greater than the size of the recent data.
38. A method according to any of the claims 31 to 37, wherein the blocks have a variable size.
39. A method according to any of claims 31 to 38, wherein the memory comprises a memory wherein the data can not be freely written, preferably in a volume of Flash memory.
40. A method according to claim 39, wherein a valid block is changed to an invalid block by changing the value of a flag of a bit stored in that block.
41. A method according to claim 40, wherein the one-bit flag is stored in the initiator of that block.
42. A method according to any of claims 31 to 41, wherein the memory comprises a memory volume of a receiver / decoder.
43. A method according to claim 42, wherein the data is downloaded from a stream of bits.
44. A method according to claim 43, wherein the data is formatted in the form of MPEG tables.
45. An apparatus for transferring blocks of data between pages of memory to allow recent data to be stored in that memory, memory comprising a plurality of pages, a page of said memory being designated as a source page comprising at least one valid block containing valid data and at least one invalid block containing invalid data, and at least one the pages of memory being designated as a transfer page, the apparatus comprises: means for copying the or each valid block of the source page on the transfer page, at least one block having a position on the transfer page different from its position in the source page; and means to delete the source page.
46. A receiver / decoder comprising the apparatus according to claim 45.
47. A method for restricting access to data in a receiver / decoder substantially as described herein with reference to the accompanying drawings.
48. A method for restricting access to broadcast data in a digital broadcasting system substantially as described herein and with reference to the accompanying drawings.
49. A method for restricting access to data stored in a memory of a receiver / decoder substantially as described herein and with reference to the accompanying drawings.
50. A transmission system substantially as described herein with reference to the accompanying drawings.
51. A method for, or apparatus for registering the arborescence of data stored as files and directories substantially as described herein.
52. An apparatus for, or a method for transferring blocks of data between memory pages substantially as described here with reference to the attached drawings.
53. A method for storing data in memory substantially as described herein with reference to the accompanying drawings.
MXPA/A/2001/002619A 1998-09-16 2001-03-13 Management of data in a receiver/decoder MXPA01002619A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP98402290 1998-09-16

Publications (1)

Publication Number Publication Date
MXPA01002619A true MXPA01002619A (en) 2001-12-04

Family

ID=

Similar Documents

Publication Publication Date Title
CA2284153C (en) Method of downloading of data to an mpeg receiver/decoder and mpeg transmission system for implementing the same
USRE40538E1 (en) Downloading of applications in a digital decoder
RU2187207C2 (en) Signal generation and broadcasting
EP0968468B1 (en) Computer memory organization and method therefor
WO1999018724A1 (en) Downloading data
KR20070095751A (en) Broadcasting receiving apparatus
RU2181929C2 (en) Extraction of data sections from translated data flow
KR100641660B1 (en) Management of data in a receiver/ decoder
JP2003518668A (en) Interface module and decoder for host
EP1053633B1 (en) Configuring method and device
JPH11234633A (en) Method and receiver to manage service information in digital television system
MXPA01002619A (en) Management of data in a receiver/decoder
AU776683B2 (en) Method of downloading of data to an MPEG receiver/decoder and MPEG transmission system for implementing the same
CN1273744A (en) Method and installation for down loading user's decorder platform
KR20000076411A (en) Computer memory organization
JP2003131952A (en) Apparatus, system and method for data backup
CZ20003254A3 (en) Terminal for processing digital data and operation process thereof
CZ331499A3 (en) Arrangement of computer memory