1. A method for parallelizing the transmission-control protocol (TCP)-related actions of a network connection, wherein the network connection facilitates communication between a first computer system and a second computer system during a data transfer between the first computer system and the second computer system, and wherein the first computer system includes a send window that is used to control the transmission of data on the network connection, wherein a size of the send window can be adjusted based on one or more properties of the first computer system, comprising:
partitioning the data to be transferred into two or more data segments on the first computer system, wherein a size of the data segments is determined based on the size of the send window and a number of available processing elements in the first computer system;
assigning the data segments to multiple processing elements within the first computer system; and
using the multiple processing elements to prepare and send their assigned data segments over the network connection to the second computer system in parallel using TCP;
wherein the network connection comprises a single physical network link.
2. The method of claim 1,
wherein partitioning the data to be transferred and sending the partitioned data segments in parallel using the multiple processing elements does not involve changing TCP; and
wherein partitioning the data to be transferred and sending the partitioned data segments in parallel using the multiple processing elements is transparent to the application layer.
3. The method of claim 1,
wherein the network connection is bi-directional;
wherein the second computer system sends data to the first computer system in the same timeframe that the first computer system sends data to the second computer system;
wherein the first computer system and the second computer system can both simultaneously partition and send data segments to each other in parallel over the bi-directional network connection; and
wherein one or both of the first computer system and the second computer system can partition received data and process the received, partitioned data in parallel using the multiple processing units.
4. The method of claim 1, wherein the minimum partition size is the larger of:
a virtual memory page size for the first computer system; and
a TCP maximum segment size.
5. The method of claim 4, wherein the virtual memory page size for the first computer system is variable, which facilitates finer data segment sizes and thereby potentially increases the parallelization of data transfers.
6. The method of claim 1, wherein the multiple processing elements include two or more central-processing units that can execute independent operations in parallel.
7. The method of claim 1 wherein, upon detecting from the received data that the first computer system is sending two or more data segments in parallel, the second computer system configures itself to receive the two or more segments in parallel.
8. A method for parallelizing the TCP-related actions of a network connection, wherein the network connection facilitates communication between a first computer system and a second computer system, and wherein the first computer system includes a send window that is used to control the transmission of data on the network connection, wherein a size of the send window can be adjusted based on one or more properties of the first computer system, comprising:
receiving TCP packets sent over the network connection from the first computer system on the second computer system, wherein a size of a data segment in each TCP packet is determined based on the size of the send window and a number of available processing elements in the first computer system;
partitioning the received TCP packets into data segments;
assigning the received data segments to multiple processing elements on the second computer system; and
using the multiple processing elements to process the data from the received TCP packets in parallel;
wherein the network connection comprises a single physical network link.
9. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for parallelizing the TCP-related actions of a network connection, wherein the network connection facilitates communication between a first computer system and a second computer system during a data transfer between the first computer system and the second computer system, and wherein the first computer system includes a send window that is used to control the transmission of data on the network connection, wherein a size of the send window can be adjusted based on one or more properties of the first computer system, the method comprising:
partitioning the data to be transferred into two or more data segments on the first computer system, wherein a size of the data segments is determined based on the size of the send window and a number of available processing elements in the first computer system;
assigning the data segments to multiple processing elements within the first computer system; and
using the multiple processing elements to prepare and send their assigned data segments over the network connection to the second computer system in parallel using TCP;
wherein the network connection comprises a single physical network link.
10. The non-transitory computer-readable storage medium of claim 9,
wherein partitioning the data to be transferred and sending the partitioned data segments in parallel using the multiple processing elements does not involve changing TCP; and
wherein partitioning the data to be transferred and sending the partitioned data segments in parallel using the multiple processing elements is transparent to the application layer.
11. The non-transitory computer-readable storage medium of claim 9,
wherein the network connection is bi-directional;
wherein the second computer system sends data to the first computer system in the same timeframe that the first computer system sends data to the second computer system;
wherein the first computer system and the second computer system can both simultaneously partition and send data segments to each other in parallel over the bi-directional network connection; and
wherein one or both of the first computer system and the second computer system can partition received data and process the received, partitioned data in parallel using the multiple processing units.
12. The non-transitory computer-readable storage medium of claim 9, wherein the minimum partition size is the larger of:
a virtual memory page size for the first computer system; and
a TCP maximum segment size.
13. The non-transitory computer-readable storage medium of claim 12, wherein the virtual memory page size for the first computer system is variable, which facilitates finer data segment sizes and thereby potentially increases the parallelization of data transfers.
14. An apparatus that parallelizes TCP-related actions of a network connection, wherein the network connection facilitates communication between a first computer system and a second computer system during a data transfer between the first computer system and the second computer system, and wherein the first computer system includes a send window that is used to control the transmission of data on the network connection, wherein a size of the send window can be adjusted based on one or more properties of the first computer system, comprising:
a partitioning mechanism configured to partition the data to be transferred into two or more data segments on the first computer system, wherein the partitioning mechanism is configured to determine a size of the data segments based on the size of the send window and a number of available processing elements in the first computer system; and
an assigning mechanism configured to assign the data segments to multiple processing elements within the first computer system;
wherein the multiple processing elements are configured to prepare and send their assigned data segments over the network connection to the second computer system in parallel using TCP; and
wherein the network connection comprises a single physical network link.
15. The method of claim 1, wherein the data segments sent by the multiple processing elements are sent in parallel using a single TCP connection.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
What is claimed is:
1. A story interactive grammar teaching system running over a computer executable hardware platform for foreign language grammar learning, monitoring its procedure, and using a multimedia file to complete a foreign language grammar training job for a user, which system comprises:
an animation database, which stores at least one animation file linking with other relevant file sets and sends out a monitoring signal when a user enters the system, the animation database including:
a grammar database, which stores at least one grammar file and a plurality of fields for interlinks;
a script database, which stores at least one script file and a plurality of fields for interlinks;
a practice problem database, which stores at least one practice problem file and a plurality of fields for interlinks;
a multimedia database, which stores at least one multimedia file and a plurality of fields for interlinks; and
a central control module, which receives and processes commands, accesses files in the animation database, and, when the monitoring signal is received, accesses a file according to the received monitoring signal.
2. The system of claim 1, wherein the animation database stores an animation database structure table which includes at least a grammar unit, an animation file, and an animation practice problem.
3. The system of claim 2, wherein the animation file further includes at least an animation object and an animation content.
4. The system of claim 3, wherein the animation object further includes a set of picture files, a set of sound files, and a set of text files.
5. The system of claim 3, wherein the animation content further includes a set of rule contents and example sentences, a set of practice problems and solutions, and a story.
6. The system of claim 1, wherein the grammar database stores a grammar database structure table which includes at least:
a grammar chapter, which provides two fields for a grammar chapter number and a grammar chapter title;
a grammar unit, which provides two fields for a grammar unit number and a grammar unit title;
a grammar rule, which provides three fields for a grammar rule number and a grammar rule, and a grammar rule address; and
a grammar example sentence, which provides three fields for a grammar example sentence number, a grammar example sentence content, and a grammar example sentence address.
7. The system of claim 6, wherein the grammar database structure table in the grammar database performs pointer linking according to the order of the grammar chapters, the grammar units, the grammar rule contents, and the grammar example sentences.
8. The system of claim 1, wherein the script database stores a script database structure table which includes at least:
a grammar unit, which provides two fields for a grammar unit number and a grammar unit title;
a script serial number, which provides two fields for a script number and a script title; and
a script content, providing two fields for a story number and a story title.
9. The system of claim 8, wherein the script database structure table in the script database performs pointer linking according to the order of the grammar units, the script serial numbers, and the script contents.
10. The system of claim 1, wherein the practice problem database stores a practice problem database structure table which includes at least:
a grammar unit, which provides two fields for a grammar unit number and a grammar unit title;
an animation practice problem, which provides five fields for an animation practice problem number, an animation practice problem content, an animation practice problem address, an animation practice problem solution content, and an animation practice problem solution address; and
a test problem, which provides five fields for a test problem number, a test problem content, a test problem address, a test problem solution content and a test problem solution address.
11. The system of claim 10, wherein the practice problem database structure table in the practice problem database performs pointer linking according to the order of the grammar units, the animation practice problems, and the animation practice problem solutions, the grammar units, the test problems, and the test problem solutions.
12. The system of claim 1, wherein the multimedia database stores a multimedia database structure table which includes at least:
a grammar unit, which provides two fields for a grammar unit number and a grammar unit title;
a picture file, which provides five fields for a picture file number and a picture file address;
a sound file, which provides two fields for a sound file number and a sound file address; and
a text file, which provides two fields for a text file number and a text file address.
13. The system of claim 12, wherein the multimedia database structure table in the multimedia database performs pointer linking according to the order of the grammar units, the picture file numbers, the picture file addresses, the grammar units, the sound file numbers, the sound file addresses, the grammar units, the text file numbers, and the text file addresses.
14. The system of claim 1, where in the computer executable hardware platform is selected from the group consisting of a PC (Personal Computer), an NB (Notebook), a PDA (Personal Digital Assistant), and a mobile phone.
15. The system of claim 1, wherein the system runs over an electronic platform in communications with a network.
16. A story interactive grammar teaching method running over a computer executable hardware platform for foreign language grammar learning, using an interactive grammar teaching system to monitor its procedure, and using a multimedia file to complete a foreign language grammar training job for a user, which method comprises the steps of:
establishing an animation database and at least one animation file;
receiving a command input from the user; and
executing the command using the interactive grammar teaching system.
17. The method of claim 16, wherein the step of establishing an animation database and at least one animation file further includes the steps of:
establishing a grammar database and at least one relevant data;
establishing a script database and at least one relevant data;
establishing a practice problem database and at least one relevant data;
establishing a multimedia file database and at least one relevant data;
making an animation file; and
integrating data in the four databases using a central control module and processing their interlinking relations.
18. The method of claim 16, wherein the step of executing the command using the interactive grammar teaching system further includes the steps of:
calling a grammar unit in the grammar database according to the command;
pointing to the animation file in the animation database using a pointer of the grammar unit and playing the animation file;
determining whether a next animation file needs to be played;
opening an animation practice problem in a practice problem database and performing immediate animation practices;
determining whether immediate practices need to be performed; and
opening a test problem in a practice problem database and performing immediate tests.
19. The method of claim 16, wherein the computer executable hardware platform is selected from the group consisting of a PC (Personal Computer), an NB (Notebook), a PDA (Personal Digital Assistant), and a mobile phone.