×

First processor for dividing long argument data into packets and storing total packet count and packets in shared buffer for subsequent execution by second processor

  • US 5,355,485 A
  • Filed: 03/03/1993
  • Issued: 10/11/1994
  • Est. Priority Date: 10/12/1989
  • Status: Expired due to Term
First Claim
Patent Images

1. A method of using a multiprocessor computer system having a first processor for calling extended functions, a second processor for executing extended functions and a communications buffer of a predetermined data size for communications between the first and second processors, said communications buffer implemented as a shared address space accessible by both the first and second processor, each said extended function having at least one argument specifying data that is greater in size than the predetermined data size of the communications buffer, said method comprising the steps of:

  • calling one of said extended functions from a main program running on the first processor;

    dividing the argument data corresponding to said called extended function into a plurality of data packets of predetermined packet size corresponding to said called extended function, said predetermined packet size permitting a plurality of said data packets to be simultaneously stored within the communications buffer;

    executing a first communications routine running on the first processor via a first entry point command corresponding to said called extended function, the step of executing said first communications routine includingwriting an extended function and a data packet count corresponding to said called extended function into the communications buffer, said data packet count indicating a total number of data packets of argument data to be sent to the second processor for said called extended function,sequentially (a) writing one of said data packets into the communications buffer, (b) determining if one of said data packets has been read from the communications buffer by the second processor, (c) writing another one of said data packets into the communications buffer if a number of said data packets written into the communications buffer minus a number of said data packets read from the communications buffer indicates free data space within the communications buffer greater than said predetermined packet size, until said plurality of data packets have been written into the communications buffer;

    reading said extended function identifier and said data packet count from the communications buffer by the second processor;

    executing a second communications routine running on the second processor, the step of executing said second communications routine includingsequentially (a) reading one of said data packets from the communications buffer, (b) indicating one of said data packets has been read from the communications buffer, and (c) determining whether said one of said data packets read from said communications buffer is a last one of said data packets for said called extended function by comparing a number of data packets read from said communications buffer with said data packet count;

    if it is determined in said determining step that said one of said data packets is not said last one of said data packets, repeating said reading, indicating, and determining steps for another one of said data packets, andif it is determined in said determining step that said one of said data packets is said last one of said data packets, performing said called extended function corresponding to said extended function identifier on the second processor.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×