ES2330604A1 - Method for managing computation resources which is applicable to a software-defined radio system - Google Patents
Method for managing computation resources which is applicable to a software-defined radio system Download PDFInfo
- Publication number
- ES2330604A1 ES2330604A1 ES200801671A ES200801671A ES2330604A1 ES 2330604 A1 ES2330604 A1 ES 2330604A1 ES 200801671 A ES200801671 A ES 200801671A ES 200801671 A ES200801671 A ES 200801671A ES 2330604 A1 ES2330604 A1 ES 2330604A1
- Authority
- ES
- Spain
- Prior art keywords
- column
- nodes
- node
- candidate
- cost
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/0003—Software-defined radio [SDR] systems, i.e. systems wherein components typically implemented in hardware, e.g. filters or modulators/demodulators, are implented using software, e.g. by involving an AD or DA conversion stage such that at least part of the signal processing is performed in the digital domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/24—Radio transmission systems, i.e. using radiation field for communication between two or more posts
-
- H04L12/2414—
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
Método para gestionar recursos de computación aplicable a un sistema de radio definida por programa.Method to manage computing resources applicable to a radio system defined by program.
Comprende mapear unas funciones, procesos o partes de al menos una aplicación sobre unos procesadores con unos recursos de computación determinados, que son seleccionados utilizando funciones de coste mediante una serie de etapas en las que se realiza un pre-mapeado de cada una de M funciones (f_{1}-f_{M}) de dicha aplicación a cada uno de N procesadores (P_{1}-P_{N}), obteniendo así una matriz de NxM nodos candidato, siendo dicho mapeado un mapeado dinámico que es apto para utilizar dicha pluralidad de funciones de costo (f_{1}-f_{M}) y escenarios de radio, recorriendo dicha matriz a través de una serie de caminos candidato, gestionando dinámicamente los recursos de computación asequibles para satisfacer y optimizar las exigencias de computación de radio definida por programa a través de una selección de unos nodos conectados por un camino que proporciona un coste óptimo.It includes mapping functions, processes or parts of at least one application on processors with certain computing resources, which are selected using cost functions through a series of stages in which a pre-mapping of each of M functions is performed. ( f 1 -f M) of said application to each of N processors ( P 1 -P N), thus obtaining a matrix of NxM candidate nodes, said mapping being a mapping dynamic that is apt to use said plurality of cost functions ( f 1 -f M) and radio scenarios, traveling said matrix through a series of candidate paths, dynamically managing the computing resources available for meet and optimize the requirements of program-defined radio computing through a selection of nodes connected by a path that provides an optimal cost.
Description
Método para gestionar recursos de computación aplicable a un sistema de radio definida por programa.Method to manage computing resources applicable to a radio system defined by program.
La presente invención concierne a un método para gestionar recursos de computación aplicable a un sistema de radio definida por programa, que en general comprende mapear unas funciones, procesos o partes de una aplicación sobre unos procesadores con unos recursos de computación determinados, seleccionados utilizando funciones de coste, y en particular a un método que comprende realizar un pre-mapeado de dichas funciones sobre unos procesadores, constituyendo unos nodos, cada uno de ellos asociado a una función y un procesador, que forman una matriz de nodos pre-conectados por mediación de unos caminos candidatos, recorrer todos los nodos de dicha matriz para evaluar sus costes, realizar una preselección de caminos y de nodos candidatos, y finalmente realizar una selección o mapeado final en base a los diferentes costes acumulados y a la preselección realizada.The present invention concerns a method for manage computing resources applicable to a radio system defined by program, which generally includes mapping functions, processes or parts of an application about processors with certain computing resources, selected using cost functions, and in particular at a method comprising performing a pre-mapping of said functions on processors, constituting nodes, each of them associated with a function and a processor, which form an array of nodes pre-connected by means of a few candidate paths, traverse all the nodes of said matrix to evaluate your costs, make a pre-selection of roads and candidate nodes, and finally make a selection or mapping final based on the different costs accrued and the preselection done.
La radio definida por programa
(Software-defined radio (SDR)) puede ser
considerada como una generalización de radio por programa, o
software, porque caracteriza a un transceptor que implementa uno o
más bloques procesadores de señal mediante software. SDR es un
concepto emergente que influye en el diseño de cadenas de procesado
de señales definidas por software e independientes en relación al
hardware para comunicaciones vía radio. Introduce flexibilidad en
sistemas inalámbricos, facilitando el paso dinámico desde una
tecnología de acceso vía radio (RAT) a otra o, en otras palabras,
la desasignación y reasignación de recursos de computación de una
aplicación SDR a
otra.Program-defined radio (Software-defined radio (SDR)) can be considered as a generalization of radio by program, or software, because it characterizes a transceiver that implements one or more signal processing blocks by software. SDR is an emerging concept that influences the design of software-defined and independent signal processing chains in relation to hardware for radio communications. It introduces flexibility in wireless systems, facilitating the dynamic passage from one radio access technology (RAT) to another or, in other words, the reallocation and reallocation of computing resources of an SDR application to
other.
El contexto de computación SDR consiste principalmente en plataformas multiprocesador heterogéneas, ya sean estaciones base (BSs) o terminales móviles (MTs), así como cadenas de procesado de señales definidas por software. Los terminales móviles están muy limitados en cuanto a recursos de energía y de computación, en flexibilidad, y en soporte para implementaciones RAT concurrentes. Al contrario, los recursos de computación de las estaciones base están menos limitados, su consumo energético no es una limitación, y el número de implementaciones RAT concurrentes puede ser tan alto como se desee. No obstante, el potencialmente gran número de usuarios y los altos grados de flexibilidad, modularidad y reconfigurabilidad de de las plataformas hacen que la gestión de recursos en las estaciones base sea igualmente importante pero más compleja que en los terminales móviles.The context of SDR computing consists mainly on heterogeneous multiprocessor platforms, whether base stations (BSs) or mobile terminals (MTs), as well as chains of signal processing defined by software. The terminals mobile phones are very limited in terms of energy resources and of computing, in flexibility, and in support for RAT implementations concurrent On the contrary, the computing resources of base stations are less limited, their energy consumption is not a limitation, and the number of concurrent RAT implementations It can be as tall as desired. However, the potentially large number of users and high degrees of flexibility, modularity and reconfigurability of the platforms make the Resource management at base stations is equally important but more complex than in mobile terminals.
Existe la necesidad de definir una estructura de software flexible que haga de interfaz entre recursos de computación SDR, por un lado, y el sistema inalámbrico, representado por los requerimientos de computación SDR, por otro lado. La estructura debe ser capaz, mediante la aplicación de un correspondiente método, de mapear dinámicamente y de manera eficiente aplicaciones SDR con restricciones de precedencia, sobre unas plataformas SDR mientras satisface las restricciones de computación SDR. Estas restricciones son, en primer lugar, los requerimientos de computación en tiempo real de las aplicaciones SDR, definidos por las demandas relativas a mínima tasa de bits y máxima latencia, y los recursos de computación limitados de las plataformas SDR.There is a need to define a structure of flexible software that interfaces between resources SDR computing, on the one hand, and the wireless system, represented by SDR computing requirements, on the other side. The structure must be able, by applying a corresponding method, to map dynamically and in a way Efficient SDR applications with precedence restrictions, over SDR platforms while satisfying the restrictions of SDR computing These restrictions are, first of all, the real-time computing requirements of applications SDR, defined by the demands regarding minimum bit rate and maximum latency, and the limited computing resources of SDR platforms
Existen multitud de contribuciones referentes al mapeado y programación de tareas en plataformas de computación multiprocesador heterogéneas. Estas contribuciones están enfocadas a una gran variedad de problemas en contextos de computación de propósito general o especial. Algunas abordan de manera conjunta los problemas de mapeado y programación de tareas y presentan soluciones óptimas o inferiores al óptimo con diferentes objetivos, como por ejemplo, el de minimizar la longitud de la programación de tareas o del encabezado de comunicación, el objetivo de satisfacer los plazos de respuesta en tiempo real, así como otros objetivos adicionales o alternativos.There are many contributions regarding mapping and programming of tasks on computer platforms heterogeneous multiprocessor. These contributions are focused to a wide variety of problems in computing contexts of general or special purpose Some jointly address mapping problems and task scheduling and present optimal or less than optimal solutions with different objectives, such as minimizing the programming length of tasks or communication header, the objective of satisfying Real-time response deadlines, as well as other objectives Additional or alternative.
Por la patente US6768901 se conoce gestionar recursos de computación de un sistema de radio definida por programa, mapeando unas funciones, procesos o partes de una aplicación sobre unos procesadores con unos recursos de computación determinados, seleccionados utilizando funciones de coste. Se propone en dicho documento realizar una abstracción de los recursos computacionales con el fin de utilizar un lenguaje de capacidades común, tanto por lo que se refiere a los recursos disponibles como a los requeridos. No se especifica un tipo de abstracción concreta, quitándole importancia, de hecho, al tipo de abstracción a utilizar.By US6768901 it is known to manage computing resources of a radio system defined by program, mapping some functions, processes or parts of a application on processors with computing resources determined, selected using cost functions. Be proposes in this document to make an abstraction of resources computational in order to use a language of capabilities common, both in terms of available resources and to those required. A specific type of abstraction is not specified, downplaying, in fact, the kind of abstraction to use.
Por otra parte por el artículo "Modelado para la gestión de recursos de computación en sistemas SDR", del XXI Simposium Nacional de la Unión científica Internacional de Radio, de los mismos inventores de la presente invención, se conoce un modelo de un sistema SDR basado en una abstracción que tiene en cuenta los recursos computacionales limitados del mismo.On the other hand by the article "Modeling for the management of computing resources in SDR systems ", of XXI National Symposium of the International Scientific Radio Union, of the same inventors of the present invention, a model of an SDR system based on an abstraction that has in account for limited computing resources.
Asimismo se conoce la aplicación en sistemas SDR del mapeado voraz, o "greedy- o g-mapping", el cual es una aproximación de mapeado local que no requiere de ningún postprocesado. Este se basa en seleccionar de entre una cuadrícula o matriz de nodos candidatos, cada uno de ellos asociado a una función y un procesador, en base a los resultados de una función de coste aplicada a cada un o de los nodos. El algoritmo g-mapping en primer lugar selecciona un nodo de la primera columna de dicha matriz, tras lo cual tiene en cuenta el coste acumulado en cada uno de los nodos de la segunda columna tomando como origen el nodo seleccionado de la primera columna, en base a cuyo coste selecciona un nodo de la segunda columna, y así sucesivamente para el resto de columnas, de manera que en cada paso se selecciona únicamente un nodo, el cual es el único que se mantiene activo al efectuar el paso siguiente de selección de un nodo de la siguiente columna.The application in SDR systems is also known of voracious mapping, or "greedy- or g-mapping", the what is a local mapping approach that does not require any postprocessed This is based on selecting from a grid or matrix of candidate nodes, each associated with a function and a processor, based on the results of a cost function applied to each or of the nodes. The algorithm g-mapping first select a node from the first column of said matrix, after which it takes into account the cumulative cost in each of the nodes of the second column taking as origin the selected node of the first column, in base at whose cost you select a node from the second column, and so successively for the rest of the columns, so that at each step only one node is selected, which is the only one that remains active when performing the next step of selecting a node of the next column.
Aparece necesario ofrecer una alternativa al estado de la técnica que permita, para una misma matriz de nodos candidatos a mapear, obtener unos mejores resultados que el obtenido con el g-mapping, gracias a considerar para la selección de cada nodo, muchas más posibles combinaciones de nodos que las tenidas en cuenta por el g-mapping, así como al hecho de realizar una serie de preselecciones previas a la selección final de nodos.It seems necessary to offer an alternative to state of the art that allows, for the same array of nodes candidates to map, get better results than the obtained with the g-mapping, thanks to consider for the selection of each node, many more possible combinations of nodes that are taken into account by g-mapping, as well as the fact of making a series of presets prior to The final selection of nodes.
Para conseguir tal fin la presente invención concierne a un método para gestionar recursos de computación aplicable a un sistema de radio definida por programa, del tipo que comprende mapear unas funciones, procesos o partes de al menos una aplicación sobre unos procesadores con unos recursos de computación determinados, seleccionados utilizando funciones de coste mediante la realización de las siguientes etapas:To achieve this purpose the present invention concerns a method to manage computing resources applicable to a program-defined radio system, of the type that comprises mapping functions, processes or parts of at least one application on processors with computing resources determined, selected using cost functions by performing the following stages:
a) pre-mapear cada una de M funciones de dicha aplicación a cada uno de N procesadores, obteniendo así una matriz de NxM nodos candidatos, cada uno de ellos asociado a una función y un procesador,a) pre-map each of M functions of said application to each of N processors, thus obtaining a matrix of NxM candidate nodes, each of them associated with a function and a processor,
b) pre-conectar cada uno de los nodos candidatos pertenecientes a una columna de dicha matriz con todos los nodos candidatos de la columna siguiente, posibilitando cada una de dichas conexiones una comunicación de datos a través de un camino candidato que incluye al menos un nodo candidato origen, una de dichas conexiones y un nodo candidato destino,b) pre-connect each of the candidate nodes belonging to a column of said matrix with all candidate nodes in the next column, enabling each of said connections a data communication through a candidate path that includes at least one origin candidate node, one of those connections and a destination candidate node,
c) aplicar al menos una función de coste a cada uno de los N nodos candidatos de la primera columna de dicha matriz, o nodos asociados a una primera de dichas funciones, obteniendo el coste de cada uno de dichos nodos candidatos,c) apply at least one cost function to each one of the N candidate nodes of the first column of said matrix, or nodes associated with a first of these functions, obtaining the cost of each of said candidate nodes,
d) aplicar al menos una función de coste a los caminos candidatos que incluyen a los nodos candidatos de la primera columna en conexión con al menos los de la segunda, y calcular el coste acumulado asociado a cada uno de dichos caminos candidatos que incluye al menos el coste del nodo destino en función de decisiones precedentes y el coste del nodo origen obtenido en la etapa c), en su totalidad o en parte, obteniendo así el coste de cada uno de dichos caminos candidatos, y:d) apply at least one cost function to the candidate paths that include the candidate nodes of the first column in connection with at least those of the second, and calculate the cumulative cost associated with each of these roads candidates that includes at least the cost of the destination node depending on of previous decisions and the cost of the origin node obtained in the stage c), in whole or in part, thus obtaining the cost of each of said candidate paths, and:
e) preseleccionar para cada nodo candidato de la segunda columna al menos parte del camino candidato de coste óptimo que lleva a dicho nodo candidato de la segunda columna o pasa por él, obteniendo, respectivamente, N primeros caminos o segmentos de caminos preseleccionados, descartando las conexiones que unen a los nodos candidatos de la primera columna con los de la segunda que no forman parte de dichos primeros caminos o segmentos de caminos preseleccionados.e) preselect for each candidate node of the second column at least part of the candidate path of optimal cost which leads to said candidate node of the second column or passes through he, obtaining, respectively, N first paths or segments of preselected roads, discarding the connections that unite the candidate nodes of the first column with those of the second not they are part of said first roads or segments of roads preselected
Para un primer ejemplo de realización, que será referenciado en un apartado posterior como indicativo de la utilización de una ventana de cálculo w=1, para el cual cada uno de dichos caminos candidatos es un camino de dos nodos (o camino de longitud 1) que incluye únicamente una de dichas conexiones, un nodo candidato origen y un nodo candidato destino de dos columnas consecutivas, el método comprende llevar a cabo:For a first embodiment, which will be referenced in a later section as indicative of the use of a calculation window w = 1, for which each of said candidate paths is a two-node path (or path of length 1) which includes only one of said connections, a node origin candidate and a two-column destination candidate node Consecutive, the method includes carrying out:
- dicha etapa d) para aplicar dicha función de coste, que es al menos una, a los caminos candidatos que incluyen a los nodos candidatos de la primera columna en conexión con, únicamente, los nodos candidatos de la segunda columna, y- said step d) to apply said function of cost, which is at least one, to the candidate paths that include the candidate nodes of the first column in connection with, only, the candidate nodes of the second column, and
- dicha etapa e) para preseleccionar por entero, para cada nodo candidato destino de la segunda columna, el camino candidato de coste óptimo que lleva hasta él, obteniéndose dichos N primeros caminos preseleccionados que parten de un nodo de la primera columna y finalizan en un nodo de la segunda columna.- said step e) to pre-select entirely, for each candidate candidate node of the second column, the path candidate of optimal cost that leads to him, obtaining said N first shortlisted paths that start from a node of the first column and end in a node of the second column.
Para dicho primer ejemplo de realización si M=2, el método comprende seleccionar los dos nodos que forman parte del camino de coste óptimo, de entre dichos primeros caminos preseleccionados, y por ende el procesador o procesadores asociados a cada uno de dichos dos nodos seleccionados como procesador o procesadores mapeados para ejecutar la primera función, el asociado al nodo de la primera columna, y una segunda función el asociado al nodo de la segunda columna.For said first embodiment if M = 2, the method comprises selecting the two nodes that are part of the optimal cost path, from among these first paths preselected, and therefore the processor or associated processors to each of said two nodes selected as processor or mapped processors to execute the first function, the associate to the node of the first column, and a second function the one associated with node of the second column.
En cambio para un caso más real en que M\geq3, el método comprende, para dicho primer ejemplo de realización, realizar las siguientes etapas, análogas a dichas etapas d) y e), respectivamente:Instead for a more real case where M \ geq3, the method comprises, for said first embodiment, perform the following stages, analogous to these stages d) and e), respectively:
d') aplicar al menos una función de coste a los caminos candidatos que incluyen a los nodos candidatos de la segunda columna en conexión con los de la tercera, para calcular el coste acumulado asociado a cada uno de dichos caminos candidatos que incluye al menos el coste del nodo destino de la tercera columna en función de decisiones precedentes y el coste de uno de dichos primeros caminos preseleccionados en la etapa e), cada uno de los cuales incluye únicamente un nodo de la primera columna conectado con uno nodo de la segunda columna, obteniendo así el coste de cada uno de dichos caminos candidatos con destino en un respectivo nodo candidato de la tercera columna, yd ') apply at least one cost function to the candidate paths that include the candidate nodes of the second column in connection with those of the third, to calculate the accumulated cost associated with each of these candidate paths that includes at least the cost of the destination node of the third column in function of previous decisions and the cost of one of said first pre-selected roads in stage e), each of the which includes only one node of the first connected column with one node of the second column, thus obtaining the cost of each one of said candidate paths destined for a respective node third column candidate, and
e') preseleccionar para cada nodo candidato destino de la tercera columna el camino candidato de coste óptimo que lleva hasta él desde un nodo origen de la segunda columna, obteniendo N segundos caminos preseleccionados, descartando las conexiones que unen a los nodos candidatos de la segunda columna con los de la tercera que no forman parte de dichos segundos caminos preseleccionados.e ') preselect for each candidate node destination of the third column the candidate path of optimal cost leading to it from a source node of the second column, obtaining N seconds preselected paths, discarding the connections that link the candidate nodes of the second column with those of the third that are not part of these second paths preselected
Según el primer ejemplo de realización cuando M=3, el método comprende seleccionar, de entre dichos N segundos caminos preseleccionados, el de coste óptimo, y recorrerlo hacia atrás junto con el primer camino preseleccionado al que se encuentra unido, para seleccionar los tres nodos que forman parte de dicho recorrido, y por ende el procesador o procesadores asociados a cada uno de dichos tres nodos seleccionados como procesadores mapeados para ejecutar la primera función, el asociado al nodo de la primera columna, la segunda función, el asociado al nodo de la segunda columna, y una tercera función, el asociado al nodo de la tercera columna.According to the first embodiment when M = 3, the method includes selecting, from among said N seconds preselected roads, the optimum cost, and travel it towards back along with the first preselected path to the one found joined, to select the three nodes that are part of said route, and therefore the processor or processors associated with each one of said three nodes selected as mapped processors to execute the first function, the one associated with the node of the first column, the second function, the one associated with the second node column, and a third function, the one associated with the node of the third column.
Si en cambio M>3, el método comprende, para el primer ejemplo de realización, realizar, para cada una de las columnas siguientes a la tercera columna, dos a dos y avanzando columna a columna, unas etapas análogas a dichas etapas d') y e') para finalmente preseleccionar para cada nodo candidato destino de cada columna adicional a la tercera columna, el camino candidato de coste óptimo que lleva hasta él desde un nodo origen de la columna inmediatamente anterior, obteniendo N caminos preseleccionados adicionales por columna, descartando las conexiones que no forman parte de dichos caminos preseleccionados adicionales.If instead M> 3, the method comprises, for the first example of realization, perform, for each of the columns following the third column, two by two and moving forward column by column, stages analogous to said stages d ') and e') to finally preselect for each destination candidate node of each additional column to the third column, the candidate path of optimal cost that leads to it from a column origin node immediately above, obtaining N preselected paths additional per column, discarding connections that do not form part of said additional preselected roads.
Finalmente para dicho caso en que M>3, el método comprende, para el primer ejemplo de realización, seleccionar, de entre los N caminos preseleccionados adicionales que incluyen a los nodos de la última columna, el de coste óptimo, y recorrerlo hacia atrás junto con todos los caminos preseleccionados a los que se encuentra unido, para seleccionar los M nodos que forman parte de dicho recorrido, y por ende el procesador o procesadores asociados a cada uno de dichos M nodos seleccionados como procesadores mapeados para ejecutar las M funciones.Finally for that case where M> 3, the method comprises, for the first embodiment, select from among the N additional preselected paths which include the nodes of the last column, the optimum cost, and traverse it back along with all the preselected roads to which it is attached, to select the M nodes that they are part of that route, and therefore the processor or processors associated with each of said M selected nodes as mapped processors to execute the M functions.
Para un segundo ejemplo de realización, que será referenciado en un apartado posterior como indicativo de la utilización de una ventana de cálculo w=2, para el cual cada uno de dichos caminos candidatos incluye un nodo candidato origen, un nodo candidato intermedio y un nodo candidato destino, de tres columnas consecutivas respectivamente, interconectados por dos de dichas conexiones, es decir un camino de tres nodos, el método comprende llevar a cabo:For a second embodiment, which will be referenced in a later section as indicative of the use of a calculation window w = 2, for which each of said candidate paths includes an origin candidate node, a node intermediate candidate and a three-column destination candidate node consecutive respectively interconnected by two of said connections, that is a three-node path, the method comprises carry out:
- dicha etapa d) para aplicar al menos dicha función de coste a los caminos candidatos, cada uno de los cuales incluye, interconectados por dos conexiones respectivas, un nodo candidato origen de la primera columna, un nodo candidato intermedio de la segunda columna y un nodo candidato destino de la tercera columna, para calcular el coste acumulado de cada uno de dichos caminos candidatos de tres nodos y el de sus segmentos iniciales, o segmentos de camino de dos nodos que incluyen a un nodo de la primera columna y a uno de la segunda, y- said step d) to apply at least said cost function to the candidate roads, each of which includes, interconnected by two respective connections, a node Candidate origin of the first column, a candidate node intermediate of the second column and a candidate node destination of the third column, to calculate the cumulative cost of each of said candidate paths of three nodes and that of their segments initials, or path segments of two nodes that include a node of the first column and one of the second, and
- dicha etapa e) para preseleccionar, para cada nodo candidato intermedio de la segunda columna, únicamente parte del camino candidato de tres nodos de coste óptimo que pasa por él, siendo dichas partes preseleccionadas dichos N primeros segmentos de camino de dos nodos.- said step e) to preselect, for each intermediate candidate node of the second column, only part of the candidate path of three nodes of optimal cost that passes through it, said pre-selected parts being said first N segments Two way path.
Para dicho segundo ejemplo de realización, cuando M>3, el método comprende realizar la siguiente etapa, análoga a dicha etapa d):For said second embodiment, when M> 3, the method comprises performing the next stage, analogous to said stage d):
d'') aplicar al menos una función de coste a los caminos candidatos de tres nodos que incluyen, interconectados por dos conexiones respectivas, un nodo candidato origen de la segunda columna, un nodo candidato intermedio de la tercera columna y un nodo candidato destino de la cuarta columna, para calcular el coste acumulado asociado a cada uno de dichos caminos candidatos de tres nodos, que incluye al menos el coste del nodo destino de la cuarta columna en función de decisiones precedentes y el coste acumulado de uno de dichos primeros segmentos de camino de dos nodos preseleccionados en la etapa e).d '') apply at least one cost function to the candidate paths of three nodes that include, interconnected by two respective connections, a candidate node origin of the second column, an intermediate candidate node of the third column and a destination candidate node of the fourth column, to calculate the cost accumulated associated to each of said three candidate paths nodes, which includes at least the cost of the destination node of the fourth column based on previous decisions and cumulative cost of one of said first two node path segments preselected in stage e).
En concreto cuando M=4, el método comprende, para dicho segundo ejemplo de realización, realizar las siguientes etapas, tras dicha etapa d''):Specifically when M = 4, the method comprises, for said second embodiment, perform the following stages, after said stage d ''):
- preseleccionar para cada nodo candidato intermedio de la tercera columna, el camino candidato completo de tres nodos de coste óptimo que pasa por él y finaliza en un nodo de la cuarta columna, obteniendo N caminos de tres nodos preseleccionados, y- preselect for each candidate node intermediate of the third column, the complete candidate path of three nodes of optimal cost that passes through it and ends in a node of the fourth column, obtaining N paths of three nodes preselected, and
- seleccionar, de entre dichos N caminos de tres nodos preseleccionados, el de coste óptimo, y recorrer dicho camino seleccionado desde su nodo intermedio, de la tercera columna, hacia delante y hacia atrás junto con el primer segmento de camino de dos nodos preseleccionado en la etapa e) al que se encuentra unido, para seleccionar los cuatro nodos que forman parte de dicho recorrido, y por ende el procesador o procesadores asociados a cada uno de dichos cuatro nodos seleccionados como procesadores mapeados para ejecutar la primera función, el asociado al nodo de la primera columna, la segunda función, el asociado al nodo de la segunda columna, la tercera función, el asociado al nodo de la tercera columna, y una cuarta función, el asociado al nodo de la cuarta columna.- select, from among said N paths of three preselected nodes, the optimal cost one, and travel that path selected from its intermediate node, from the third column, towards forward and backward along with the first segment of two road nodes preselected in stage e) to which it is attached, for select the four nodes that are part of said path, and therefore the processor or processors associated with each of said four nodes selected as mapped processors for execute the first function, the one associated with the node of the first column, the second function, the one associated with the second node column, the third function, the one associated with the third node column, and a fourth function, the one associated with the node of the fourth column.
Alternativamente cuando M>4, el método comprende, para dicho segundo ejemplo de realización, realizar la siguiente etapa tras dicha etapa d''):Alternatively when M> 4, the method comprises, for said second embodiment, perform the following stage after said stage d ''):
e'') preseleccionar, para cada nodo candidato intermedio de la tercera columna, únicamente parte del camino candidato de tres nodos de coste óptimo que pasa por él y finaliza en un nodo candidato de la cuarta columna, obteniendo N segundos segmentos de camino de dos nodos preseleccionados.e '') preselect, for each candidate node intermediate of the third column, only part of the way candidate of three nodes of optimal cost that passes through it and ends in a candidate node of the fourth column, obtaining N seconds Road segments of two preselected nodes.
El método comprende realizar, para dicho caso en que M>4 del segundo ejemplo de realización, para cada una de las columnas siguientes a la cuarta columna, tres a tres y avanzando columna a columna, unas etapas análogas a dichas etapas d'') y e'') para cada camino de tres nodos adicional que finaliza en cada una de las columnas siguientes o adicionales a la cuarta columna, a excepción del camino de tres nodos adicional que finaliza en la columna M, para preseleccionar para cada nodo candidato intermedio de cada camino de tres nodos adicional, únicamente parte del camino candidato de tres nodos de coste óptimo que pasa por él, obteniendo N segmentos de camino de dos nodos preseleccionados adicionales por cada columna adicional a la cuarta columna.The method comprises performing, for that case in that M> 4 of the second embodiment, for each of the columns following the fourth column, three to three and moving forward column by column, some stages analogous to those stages d '') and e '') for each additional three-node path that ends in each of the following or additional columns to the fourth column, to exception of the additional three-node path that ends in the column M, to preselect for each intermediate candidate node of each additional three-node path, only part of the path candidate of three nodes of optimal cost that passes through it, obtaining N path segments of two additional preselected nodes per each additional column to the fourth column.
Por lo que respecta a dichos caminos de tres nodos adicionales que finalizan en la columna M, el método comprende realizar las siguientes etapas (para M>4 del segundo ejemplo de realización), tras dicha etapa análoga a dicha etapa e''):As regards these three ways additional nodes ending in column M, the method includes performing the following steps (for M> 4 of the second exemplary embodiment), after said stage analogous to said stage and''):
- preseleccionar para cada nodo candidato intermedio de la columna M-1, el camino candidato completo de tres nodos de coste óptimo que pasa por él y finaliza en un nodo de la columna M, obteniendo N caminos de tres nodos preseleccionados, y- preselect for each candidate node intermediate of column M-1, the candidate path complete of three nodes of optimal cost that passes through it and ends in a node of column M, obtaining N paths of three nodes preselected, and
- seleccionar, de entre dichos N caminos de tres nodos preseleccionados, el de coste óptimo, y recorrer dicho camino seleccionado desde su nodo intermedio, de la columna M-1, hacia delante y hacia atrás junto con todos los segmentos de camino de dos nodos preseleccionados a los que se encuentra unido, para seleccionar los M nodos que forman parte de dicho recorrido, y por ende el procesador o procesadores asociados a cada uno de dichos M nodos seleccionados como procesadores mapeados para ejecutar las M funciones.- select, from among said N paths of three preselected nodes, the optimal cost one, and travel that path selected from its intermediate node, from the column M-1, forward and back along with all path segments of two preselected nodes to which find attached, to select the M nodes that are part of said path, and therefore the processor or associated processors to each of said M nodes selected as processors mapped to execute the M functions.
Para unos ejemplos de realización adicionales para los que w>2, o dicho de otro modo cuando cada uno de dichos caminos candidatos es un camino de más de tres nodos, el método comprende llevar a cabo:For some additional embodiments for which w> 2, or in other words when each of said candidate paths is a path of more than three nodes, the method It includes carrying out:
- dicha etapa d) para calcular el coste acumulado de cada uno de dichos caminos candidatos de más de tres nodos y el de sus segmentos iniciales de camino de dos nodos que incluyen a un nodo de la primera columna y a uno de la segunda,- said step d) to calculate the cost accumulated of each of said candidate paths of more than three nodes and the one of its initial path segments of two nodes that include a node of the first column and one of the second,
- dicha etapa e) para preseleccionar, para cada nodo candidato de la segunda columna, únicamente parte del camino candidato de más de tres nodos de coste óptimo que pasa por él, siendo dichas partes preseleccionadas dichos N primeros segmentos de camino de dos nodos, y- said step e) to preselect, for each candidate node of the second column, only part of the path candidate of more than three nodes of optimal cost that passes through it, said pre-selected parts being said first N segments two-way path, and
- realizar unas etapas análogas a dichas etapas descritas para dichos caminos de tres nodos, preseleccionando para cada nodo candidato que ocupa la segunda posición en cada camino de más tres nodos adicional que finaliza en cada una de las columnas siguientes o adicionales a la cuarta columna, a excepción del camino de más de tres nodos adicional que finaliza en la columna M, el segmento inicial de dos nodos del camino candidato de más de tres nodos de coste óptimo que pasa por él, obteniendo N segmentos de camino de dos nodos preseleccionados adicionales por cada columna adicional a la cuarta columna.- perform stages analogous to these stages described for said three-node paths, preselecting to each candidate node that occupies the second position on each path of plus three additional nodes ending in each of the columns following or additional to the fourth column, except for the path of more than three additional nodes ending in column M, the initial segment of two nodes of the candidate path of more than three nodes of optimal cost that passes through it, obtaining N segments of path of two additional preselected nodes per column additional to the fourth column.
El método comprende realizar, para dichos caminos de más de tres nodos adicionales que finalizan en la columna M, las siguientes etapas:The method comprises performing, for said paths of more than three additional nodes that end in the column M, the following stages:
- preseleccionar para cada nodo candidato que ocupa la segunda posición en cada camino de más tres nodos adicional que finaliza en la columna M, el camino candidato completo de más de tres nodos de coste óptimo que pasa por él y finaliza en un nodo de la columna M, obteniendo N caminos de más tres nodos preseleccionados, y- preselect for each candidate node that occupies the second position on each path of three more nodes additional ending in column M, the candidate path complete with more than three nodes of optimal cost that passes through it and ends in a node of column M, obtaining N paths of more three preselected nodes, and
- seleccionar, de entre dichos N caminos de más de tres nodos preseleccionados, el de coste óptimo, y recorrer dicho camino seleccionado desde su respectivo nodo que ocupa la segunda posición en el camino, hacia delante y hacia atrás junto con todos los segmentos de camino de dos nodos preseleccionados a los que se encuentra unido, para seleccionar los M nodos que forman parte de dicho recorrido, y por ende el procesador o procesadores asociados a cada uno de dichos M nodos seleccionados como procesadores mapeados para ejecutar las M funciones.- select, from among said N paths of more of three preselected nodes, the optimum cost, and traverse said path selected from its respective node that occupies the second position on the road, forward and backward together with all the path segments of two preselected nodes to those that are united, to select the M nodes that form part of said route, and therefore the processor or processors associated to each of said M nodes selected as mapped processors to execute the M functions.
Por lo que se refiere a las mencionadas decisiones precedentes, éstas influyen en dicho coste acumulado al menos por lo que respecta a los recursos restantes en cada nodo tras haber tomado dichas decisiones o preselecciones.As regards the aforementioned previous decisions, these influence said accumulated cost by less as regards the remaining resources in each node after having made those decisions or preselections.
Las funciones de coste utilizadas por el método propuesto por la invención evalúan el coste de computación que relaciona los requerimientos de procesado con los recursos disponibles de procesado, y el coste de comunicación pone que relaciona los requerimientos de ancho de banda para traspasar datos de un proceso a otro con los correspondientes anchos de banda disponibles entre los procesadores.The cost functions used by the method proposed by the invention evaluate the cost of computing that relates processing requirements to resources processing available, and the cost of communication puts that relates bandwidth requirements to transfer data from one process to another with the corresponding bandwidths available between processors.
El método comprende, para un ejemplo de realización, determinar dichos recursos de computación de cada uno de dichos procesadores tomando como base un segmento temporal, o "time slot", de una pluralidad de segmentos temporales iguales, de duración suficiente como para asegurar que cada procesador sea capaz de ejecutar las funciones o procesos asignados y de traspasar datos a otro procesador antes de que finalice dicho segmento temporal, garantizando así el procesado en tiempo real requerido por las aplicaciones SDR.The method comprises, for an example of realization, determine said computing resources of each of said processors based on a temporary segment, or "time slot", of a plurality of equal time segments, of sufficient duration to ensure that each processor is capable of executing the assigned functions or processes and of transferring data to another processor before said segment ends temporary, thus guaranteeing the real-time processing required by SDR applications.
Por otra parte con el fin de trabajar con dichos segmentos temporales, el método comprende mapear dichas funciones para ejecutar finalmente la aplicación mediante un proceso de segmentación de instrucciones, estableciéndose los mismos requerimientos de computación para cada uno de dichos segmentos temporales.On the other hand in order to work with such temporal segments, the method comprises mapping those functions to finally run the application through a process of instruction segmentation, establishing them computing requirements for each of these segments Temporary
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Las anteriores y otras ventajas y características se comprenderán más plenamente a partir de la siguiente descripción detallada de unos ejemplos de realización con referencia a los dibujos adjuntos, que deben tomarse a título ilustrativo y no limitativo, en los que:The above and other advantages and features will be more fully understood from the following detailed description of some embodiments with reference to the attached drawings, which should be taken as a title illustrative and not limiting, in which:
la Fig. 1 es una representación esquemática de un modelo de plataforma con sus recursos inicialmente disponibles (a) y de un modelo de aplicación con sus requerimientos de recursos (b), utilizables para aplicar el método propuesto por la presente invención;Fig. 1 is a schematic representation of a platform model with its initially available resources (a) and an application model with its resource requirements (b), usable to apply the method proposed herein invention;
la Fig. 2 muestra de manera esquemática una matriz de nodos (a, c) configurada según el método propuesto, con unos nodos iniciales dibujados con línea continua objeto de análisis según una primera parte del método propuesto, para un ejemplo de realización, así como una tabla de costes (b) de dichos nodos;Fig. 2 schematically shows a node matrix (a, c) configured according to the proposed method, with initial nodes drawn with continuous line object of analysis according to a first part of the proposed method, for a exemplary embodiment, as well as a table of costs (b) of said nodes;
la Fig. 3 muestra la misma matriz (a, c) de la Fig. 2, para el mismo ejemplo de realización, pero para un paso posterior, o segunda parte del método propuesto por la invención, indicando la vista (a) los caminos examinados en línea continua y la vista (c) el camino preseleccionado en negrita, así como una tabla de costes (b) indicando el coste acumulado en un primer nodo de una segunda columna de dicha matriz;Fig. 3 shows the same matrix (a, c) of the Fig. 2, for the same embodiment, but for one step posterior, or second part of the method proposed by the invention, indicating the view (a) the paths examined in a continuous line and the view (c) the preselected path in bold, as well as a table of costs (b) indicating the cost accumulated in a first node of a second column of said matrix;
la Fig. 4 muestra unas vistas análogas a las de la Fig. 3, para el mismo segundo paso, pero aplicado a un segundo nodo de dicha segunda columna de la matriz, indicando la vista (a) los caminos examinados en línea continua y la vista (c) el camino preseleccionado en negrita;Fig. 4 shows views similar to those of Fig. 3, for the same second step, but applied to a second node of said second column of the matrix, indicating the view (a) the roads examined in a continuous line and sight (c) the road preselected in bold;
la Fig. 5 muestra unas vistas análogas a las de la Fig. 3, con la diferencia de que el análisis referente a dicha segunda parte del método propuesto por la invención, se lleva a cabo respecto al primer nodo de la tercera columna;Fig. 5 shows views similar to those of Fig. 3, with the difference that the analysis referring to said second part of the method proposed by the invention, takes out with respect to the first node of the third column;
la Fig. 6 muestra unas vistas análogas a las de la Fig. 4, con la diferencia de que el análisis referente a dicha segunda parte del método propuesto por la invención, se lleva a cabo respecto al segundo nodo de la tercera columna;Fig. 6 shows views similar to those of Fig. 4, with the difference that the analysis referring to said second part of the method proposed by the invention, takes out with respect to the second node of the third column;
la Fig. 7 muestra unas vistas análogas a las de la Fig. 3 y 5, con la diferencia de que el análisis referente a dicha segunda parte del método propuesto por la invención, se lleva a cabo respecto al primer nodo de la cuarta columna;Fig. 7 shows views analogous to those of Fig. 3 and 5, with the difference that the analysis referring to said second part of the method proposed by the invention is carried out with respect to the first node of the fourth column;
la Fig. 8 muestra unas vistas análogas a las de la Fig. 4 y 6, con la diferencia de que el análisis referente a dicha segunda parte del método propuesto por la invención, se lleva a cabo respecto al segundo nodo de la cuarta columna, y de que en (c) no aparece ninguna línea en negrita por no haberse preseleccionado ningún camino que lleva al segundo nodo de la cuarta columna debido al coste infinito de ambos;Fig. 8 shows views analogous to those of Fig. 4 and 6, with the difference that the analysis referring to said second part of the method proposed by the invention is carried out with respect to the second node of the fourth column, and that in (c) no line appears in bold because there is no preselected no path leading to the second node of the fourth column due to the infinite cost of both;
la Fig. 9 muestra en la vista (a) la matriz de nodos de las Figs. 2 a 7, con unos nodos seleccionados definitivamente que forman parte del recorrido indicado por unas flechas discontinuas, así como una vista (b) que indica el mapeado final representado por dichos nodos seleccionados;Fig. 9 shows in view (a) the matrix of nodes of Figs. 2 to 7, with selected nodes definitely that they are part of the route indicated by some dashed arrows, as well as a view (b) indicating the mapping final represented by said selected nodes;
la Fig. 10 muestra unas vistas análogas a las de la Fig. 3 pero para otro ejemplo de realización para el que se examinan caminos de tres nodos que pasan por el nodo gris de la vista (a), indicando dicha vista (a) los caminos examinados en línea continua y la vista (c) el segmento de uno de dichos caminos preseleccionado, en negrita, así como una tabla de costes (b) indicando los costes acumulados en cada uno de dichos caminos examinados;Fig. 10 shows views similar to those of Fig. 3 but for another exemplary embodiment for which examine paths of three nodes that pass through the gray node of the view (a), indicating said view (a) the roads examined online continue and view (c) the segment of one of said paths preselected, in bold, as well as a cost table (b) indicating the costs accrued in each of these roads examined;
la Fig. 11 muestra unas vistas análogas a las de la Fig. 10, para el mismo segundo paso, pero aplicado a los caminos que pasan por el nodo gris de la vista (a);Fig. 11 shows views analogous to those of Fig. 10, for the same second step, but applied to the roads that pass through the gray node of the view (a);
la Fig. 12 muestra unas vistas análogas a las de la Fig. 10, pero donde los nodos objeto de análisis se han desplazado una posición a la derecha, y donde en la vista (c) se ha preseleccionado, marcado en negrita, un camino completo de tres nodos que abarca las tres últimas columnas;Fig. 12 shows views similar to those of Fig. 10, but where the nodes under analysis have been shifted one position to the right, and where in view (c) it has preselected, marked in bold, a full path of three nodes covering the last three columns;
la Fig. 13 expone unas vistas análogas a las de la Fig. 12, pero donde tanto los caminos de tres nodos examinados (vista (a)) como el preseleccionado (vista (c)) pasan por el segundo nodo de la tercera columna; yFig. 13 shows similar views to those of Fig. 12, but where both the paths of three nodes examined (view (a)) as the preselected (view (c)) go through the second node of the third column; Y
la Fig. 14 muestra en la vista (a) la matriz de nodos con unos nodos seleccionados definitivamente que forman parte del recorrido indicado por unas flechas discontinuas, para el ejemplo de realización de las Figs. 10 a 13, así como una vista (b) que indica el mapeado final representado por dichos nodos seleccionados;Fig. 14 shows in view (a) the matrix of nodes with selected nodes definitely that are part of the route indicated by dashed arrows, for exemplary embodiment of Figs. 10 to 13, as well as a view (b) indicating the final mapping represented by said nodes selected;
la Fig. 15 es una representación esquemática de una matriz de NxM nodos generada y utilizada por el método propuesto por la presente invención;Fig. 15 is a schematic representation of an array of NxM nodes generated and used by the method proposed by the present invention;
la Fig. 16 ilustra una secuencia de instrucciones o seudo-código representativos de la implementación del método propuesto por la presente invención para un ejemplo de realización; yFig. 16 illustrates a sequence of instructions or pseudo-code representative of the implementation of the method proposed by the present invention to an example of embodiment; Y
la Fig. 17 es una tabla que contiene las variables y expresiones más importantes utilizados en el siguiente apartado de descripción detallada de unos ejemplos de realización.Fig. 17 is a table containing the most important variables and expressions used in the following detailed description section of some examples of realization.
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
En el presente apartado se referirá, con referencia a las figuras adjuntas, el método propuesto como algoritmo "t_{w}-mapping" o algoritmo de programación de ventana w dinámica, donde w indica el tamaño de dicha ventana, de análisis y cálculo.This section will refer, with reference to the attached figures, the method proposed as " t w-mapping" algorithm or dynamic window programming algorithm w, where w indicates the size of said window, for analysis and calculation .
Aunque se asume un problema particular de mapeado, los conceptos mostrados son validos para cualquier problema.Although a particular problem of mapping, the concepts shown are valid for any trouble.
Para ejemplificar el proceso de mapeado según el algoritmo t_{w}-mapping, se ha asumido una función de coste sencilla. Esta consiste en la suma entre el coste de computación y el coste de comunicación. El coste de computación pone en relación los requerimientos de procesado con los recursos disponibles de procesado, mientras que el coste de comunicación pone en relación los requerimientos de ancho de banda (para traspasar datos de un proceso a otro) con los correspondientes anchos de banda disponibles entre los procesadores. Anchos de banda internos a un procesador se asumen infinitos, por lo cual el coste de traspasar datos de un proceso a otro dentro del mismo procesado no implica ningún coste de comunicación. Para garantizar un mapeado correcto, se actualizan los recursos disponibles después de cada decisión del t_{w}-mapping. Los números (costes) provienen de esta función de coste, que no se especifica con más detalle porque el objetivo es ejemplificar el funcionamiento del t_{w}-mapping; el origen de estos números no es significativo sino cómo se comporta el algoritmo en función de estos números. Nótense que un coste infinito indica el caso de requerir más recursos de los disponibles. Por lo tanto costes finitos representan mapeados validos, mientras que costes infinitos indican mapeados (parciales) inválidos. Para esta como para cualquier función de coste aplicada el objetivo es optimizar (minimizar en este caso) el coste de mapeado; el algoritmo toma las decisiones correspondientes, lo que se verá a continuación.To exemplify the mapping process according to the t w-mapping algorithm, a simple cost function has been assumed. This consists of the sum between the cost of computing and the cost of communication. The cost of computing relates the processing requirements to the available processing resources, while the communication cost relates the bandwidth requirements (to transfer data from one process to another) with the corresponding available bandwidths between the processors. Internal bandwidths to a processor are assumed infinite, so the cost of transferring data from one process to another within the same processing does not imply any communication cost. To ensure proper mapping, the available resources are updated after each decision of the t- w-mapping. The numbers (costs) come from this cost function, which is not specified in more detail because the objective is to exemplify the operation of the t- w-mapping; The origin of these numbers is not significant but how the algorithm behaves based on these numbers. Note that an infinite cost indicates the case of requiring more resources than are available. Therefore finite costs represent valid mappings, while infinite costs indicate invalid (partial) mappings. For this, as for any cost function applied, the objective is to optimize (minimize in this case) the cost of mapping; The algorithm makes the corresponding decisions, which will be seen below.
Por lo que se refiere a la plataforma y aplicación (Recursos disponibles y requeridos), en la Fig. 1a se muestra el modelo de una plataforma de 2 procesadores, indicando los recursos de procesado (números negrita) y de comunicación (números normales), y en la Fig. 1b se muestran los recursos requeridos de procesado (números negrita) y de traspaso de datos (números normales) y el modelo de la aplicación que consiste de 4 procesos (módulos o funciones).As regards the platform and application (Resources available and required), in Fig. 1a shows the model of a platform of 2 processors, indicating processing resources (bold numbers) and communication (normal numbers), and in Fig. 1b the resources are shown required processing (bold numbers) and data transfer (normal numbers) and the application model consisting of 4 processes (modules or functions).
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Ventana w = 1Window w = 1
En la primera parte el algoritmo calcula el coste da mapear el proceso o función f_{1} a todos los procesadores (Fig. 2a). Según la función de coste elegida, mapear el proceso f_{1} al procesador P_{1} cuesta 0.5, mientras que mapear el proceso f_{1} al procesador P_{2} cuesta 1 (Fig. 2b). Estos costes se guardan en los correspondientes nodos (Fig. 2c).In the first part, the algorithm calculates the cost of mapping the process or function f 1 to all processors (Fig. 2a). Depending on the cost function chosen, mapping the process f 1 to the processor P 1 costs 0.5, while mapping the process f 1 to the processor P 2 costs 1 (Fig. 2b). These costs are saved in the corresponding nodes (Fig. 2c).
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
En la segunda parte, el t_{1}-mapping examina los nodos entre paso (paso) 2 y (M-w+1). Los nodos de cada paso se pueden procesar en paralelo, mientras que paso (i+1) se ha de procesar después del procesado de los nodos de paso i. Para el nodo (P_{1}, f_{2}) se examinan los caminos [P_{1} P_{1}]_{2} y [P_{2} P_{1}]_{2} (Fig. 3a). Sus costes acumulados, o sea el coste del nodo de origen más el coste de mapear f_{2} a P_{1} y a P_{2}, respectivamente, se calculan función de los recursos restantes (Fig. 3b) para elegir el de menor coste que marca el camino a seguir (Fig. 3c).In the second part, the t _ {1} -mapping examines nodes between step (step) 2 and (M - w +1). The nodes of each step can be processed in parallel, while step ( i +1) must be processed after the processing of the nodes of step i . For the node ( P 1, f 2), the paths [ P 1 P 1] 2 and [ P 2 P 1] _ are examined {2} (Fig. 3a). Its cumulative costs, that is the cost of the origin node plus the cost of mapping f 2 to P 1 and P 2, respectively, are calculated based on the remaining resources (Fig. 3b) for choose the one with the lowest cost that marks the way forward (Fig. 3c).
Para el nodo (P_{2}, f_{2}) se examinan los caminos [P_{1} P_{2}]_{2} y [P_{2} P_{2}]_{2} (Fig. 4a). Sus costes acumulados, o sea el coste del nodo de origen más el coste de mapear f_{2} a P_{1} y a P_{2}, respectivamente, se calculan en función de los recursos restantes (Fig. 3b) para elegir el de menor coste que marca el camino a seguir (Fig. 4c).For the node ( P 2, f 2), the paths [ P 1 P 2] 2 and [ P 2 P 2] _ are examined {2} (Fig. 4a). Its accumulated costs, that is the cost of the origin node plus the cost of mapping f 2 to P 1 and P 2, respectively, are calculated based on the remaining resources (Fig. 3b) to choose the one with the lowest cost that marks the way forward (Fig. 4c).
Una vez acabado de procesar los nodos del paso
2, se continúa con los nodos del paso 3. Estos nodos se procesan de
la manera equivalente a la que se aplicó a los nodos del paso 2,
partiendo de los costes guardados y los recursos disponibles en los
nodos (P_{1}, f_{2}) y (P_{2},
f_{2}) (Fig. 5 y Fig. 6). Finalmente, se procesan los nodos
del paso 4 (Fig. 7 y
Fig. 8).Once you have finished processing the nodes of step 2, you continue with the nodes of step 3. These nodes are processed in the same way as was applied to the nodes of step 2, based on the costs saved and the resources available in nodes (P {1}, {2} f) and (P {2}, {2} f) (Fig. 5 and Fig. 6). Finally, the nodes of step 4 are processed (Fig. 7 and
Fig. 8).
Una vez acabada la parte II del algoritmo, se continúa con la parte III. En esta parte el t_{w}-mapping primero busca el nodo de mínimo coste bajo los del paso M-w+1. En el caso del t_{1}-mapping y el ejemplo considerado, esto es el nodo (P_{1}, f_{4}), con el coste de 2.83, opuesto al coste infinito del nodo (P_{2}, f_{4}) (Fig. 9a). Partiendo de este nodo se traspasa el diagrama del t_{w}-mapping por las conexiones marcadas en negrita hasta llegar a un nodo del paso 1, marcando los nodos atravesados (Fig. 9a). Esto devuelve el mapeado final según la función de coste aplicada y la ventana elegida. En este caso la solución propone mapear f_{1}, f_{2} y f_{4} a procesador P_{1} y f_{3} a P_{2} (Fig. 9b). El coste total de este mapeado es 2.83, tal y como indica el nodo (P_{1}, f_{4}) (Fig. 9a).Once part II of the algorithm is finished, part III is continued. In this part, t w-mapping first searches for the lowest cost node under those of step M - w +1. In the case of t _ {1} -mapping and the example, this is the node (P {1}, {4} f), with the cost of 2.83, opposed to the infinite cost node (P { 2, f 4) (Fig. 9a). Starting from this node diagram is transferred t _ {w} -mapping by boldfaced connections to reach a node in step 1, marking nodes crossed (Fig. 9a). This returns the final mapping according to the cost function applied and the window chosen. In this case the solution proposes to map f 1, f 2 and f 4 to processor P 1 and f 3 to P 2 (Fig. 9b). The total cost of this mapping is 2.83, as indicated by the node (P {1}, {4} f) (Fig. 9a).
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Ventana w = 2Window w = 2
Es la misma que en el caso de w = 1 (Fig. 2).It is the same as in the case of w = 1 (Fig. 2).
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Los caminos tienen un longitud de w = 2. Hay N^{w} = 2^{2} = 4 caminos que se comparan en cada nodo de la parte II del algoritmo. La Fig. 10 ilustra el procedimiento para el nodo (P_{1}, f_{2}) y la Fig. 11 para el nodo (P_{2}, f_{2}). Nótense que, aunque se usa el coste del camino de longitud 2 para tomar la decisión, se marca solo la primera parte del camino y se guarda el coste correspondiente al paso de longitud 1 (Fig. 10c y Fig. 11c).The paths have a length of w = 2. There are N w = 2 2 = 4 paths that are compared on each node of part II of the algorithm. FIG. 10 illustrates the method for the node (P {1}, {2} f) and FIG. 11 for the node (P {2}, {2} f). Note that, although the cost of the path of length 2 is used to make the decision, only the first part of the path is marked and the cost corresponding to the passage of length 1 is saved (Fig. 10c and Fig. 11c).
Se procede con los 2 nodos bajo el paso 3 (ver Figs. 12 y 13) de manera equivalente, con la diferencia de que el coste acumulado en los nodos de la cuarta columna se guardan o asignan a los nodos de la tercera columna y de que se marca el camino entero de longitud 2 después de haber tomado la decisión. Esto es debido a que se trata del último paso de la parte II del t_{2}-mapping: M-w+1 = 4-2+1 = 3.Proceed with the 2 nodes under step 3 (see Figs. 12 and 13) in an equivalent manner, with the difference that the cost accumulated in the nodes of the fourth column is saved or assigned to the nodes of the third column and of that the entire path of length 2 is marked after the decision has been made. This is because it is the last step , part II t _ {2} -mapping: M - w +1 = 4-2 + 1 = 3.
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Se elige el nodo de mínimo coste bajo el paso (M-w+1) = (4-2+1) = 3, en este caso el nodo (P_{2}, f_{3}). Partiendo de este nodo se recorre el diagrama t_{w}-mapping en ambas direcciones por las conexiones marcadas hasta llegar al paso 1 por un lado y al paso 4 por el otro (Fig. 14a). El mapeado final se obtiene a partir de los nodos travesados (Fig. 14b) durante este procedimiento.Minimum cost node under step (M - w + 1) is chosen = (4/2 + 1) = 3, in this case the node (P {2}, {3} f). From this diagram node t _ {w} -mapping is traversed in both directions by the connections marked until step 1 on one side and the step 4 on the other (Fig. 14a). The final mapping is obtained from the traversed nodes (Fig. 14b) during this procedure.
Debido a que en los sistemas SDR se conciben criterios de optimización diferentes, tales como el relativo a satisfacer requerimientos de computación en tiempo real en condiciones difíciles de satisfacer, o el relativo a optimizar el consumo energético, el método o algoritmo propuesto por la presente invención es de propósito general, y puede ejecutar diferentes funciones de coste y ser dinámicamente ajustado a cambios en el entorno de señales de radio.Because SDR systems are conceived different optimization criteria, such as the one related to meet real-time computing requirements in difficult conditions to satisfy, or relative to optimize the energy consumption, the method or algorithm proposed herein invention is general purpose, and can execute different cost functions and be dynamically adjusted to changes in the Radio signal environment.
A continuación se detallará, con referencia a las Figs. 15 y 16, el algoritmo de t_{w}-mapping descrito para un ejemplo de realización más complejo que el descrito anteriormente, y generalizado para M funciones, N procesadores y NxM nodos.It will be detailed below, with reference to Figs. 15 and 16, the t w-mapping algorithm described for a more complex embodiment than described above, and generalized for M functions, N processors and NxM nodes.
Con referencia a la Fig. 15, en ella puede verse un diagrama de t_{w}-mapping que contiene una matriz de NxM t-nodos. Un t-nodo se identifica como (P_{k(l)}, f_{i}) y representa el mapeado de una función SDR f_{i} al procesador P_{k(l)}. Cualquier t-nodo en el paso i (columna i en el diagrama de t_{w}-mapping) se encuentra conectado con todos los t-nodos del paso i+1. La secuencia de procesadores [P_{k(0)} P_{k(1)} ... P_{k(w)}]_{i} identifica el camino-w, un camino de longitud w, que está asociado con el t-nodo (P_{k(1)}, f_{i}). P_{k(0)} es el procesador de origen del camino-w en el paso i-1 y P_{k(w)} el procesador de destino en el paso i+w-1. Por tanto, [P_{1} P_{1} P_{N} P_{1}]_{2} representa el camino de tres conexiones o segmentos marcados en negrita en la Fig. 6, y se encuentra asociado con el t-nodo (P_{1}, f_{2}). La Tabla 1 de la Fig. 17 contiene las variables y expresiones más importantes que aparecen en la presente memoria descriptiva.With reference to Fig. 15, there can be seen a t w-mapping diagram containing a matrix of NxM t-nodes. A t-node is identified as ( P k (l), f i) and represents the mapping of an SDR function f i to the processor P k (l). Any t-node in step i (column i in the diagram {w} t _ -mapping) is connected to all nodes t-step i +1. The sequence of processors [ P k (0) P k (1) ... P k (w)] i identifies the path-w, a path of length w , which is associated with the t-node ( P k (1), f i). P_ {k (0)} is the source processor of the path-w in step i -1 and P k (w)} the destination processor in step i + w -1. Thus, [ P 1 P 1 P N P 1] 2 represents the path of three connections or segments marked in bold in Fig. 6, and is associated with t-node (P {1}, {2} f). Table 1 in Fig. 17 contains the most important variables and expressions that appear in this specification.
El algoritmo de t_{w}-mapping que se ilustra en la Fig. 16 puede ser dividido en tres partes: procesado en el paso 1 (líneas 1-2 en la Fig. 16), procesado en los pasos i = 2, 3, ..., M-w+1 (líneas 3-18 en la Fig. 16), y postprocesado (líneas 19-20 en la Fig. 16). El t_{w}-mapping y por tanto su descripción no asume una función de coste en particular.The t w-mapping algorithm illustrated in Fig. 16 can be divided into three parts: processed in step 1 (lines 1-2 in Fig. 16), processed in steps i = 2, 3, ..., M - w +1 (lines 3-18 in Fig. 16), and postprocessed (lines 19-20 in Fig. 16). The t w-mapping and therefore its description does not assume a particular cost function.
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
La primera parte del algoritmo se refiere a la función SDR f_{1}. Para cualquier procesador P_{k(0)}, el t_{w}-mapping (w \geq 1) premapea f_{1} a P_{k(0)} y almacena el coste de premapeado CT(P_{k(0)}, f_{1}) en el t-nodo (P_{k(0)}, f_{1}) (líneas 1-2 en la Fig. 16). El término premapeado indica que el mapeado final de la aplicación SDR no es conocido hasta haber procesado, o premapeado, todas sus funciones SDR.The first part of the algorithm concerns the function SDR f {1}. For any processor P k (0), the t w-mapping ( w ≥ 1) pre-maps f 1 to P k (0) and stores the pre-mapping cost CT ( P k (0), f 1) at the t-node ( P k (0), f 1) (lines 1-2 in Fig. 16). The term pre-mapping indicates that the final mapping of the SDR application is not known until all its SDR functions have been processed, or pre-mapped.
El t_{1}-mapping analiza los N segmentos de camino, o caminos de longitud 1, provinentes del t-nodo (P_{k(1)}, f_{i}). Estos son [P_{1} P_{k(1)}]_{i}, [P_{2} P_{k(1)}]_{i}, ..., y [P_{N} P_{k(1)}]_{i} (línea 5 en la Fig. 16). Al camino de 1 [P_{k(0)} P_{k(1)}]_{i} le es asignado el peso WT[P_{k(0)} P_{k(1)}]_{i} (línea 6 en la Fig. 16). Este peso representa el coste de premapear la función SDR f_{i} al procesador P_{k(1)} teniendo en consideración las decisiones precedentes, las cuales son proporcionadas por el t-nodo origen del camino de 1 (P_{k(0)}, f_{i-1}). El t_{1}-mapping calcula el coste acumulado CT[P_{k(0)} P_{k(1)}]_{i} = CT(P_{k(0)}, f_{i-1}) + WT[P_{k(0)} P_{k(1)}]_{i} (elementos en negrita de la línea 12 en la Fig. 16) para cada camino de 1. El camino de 1 [P_{k(0)\text{*}} P_{k(1)}]_{i} es obtenido a partir de:The t 1 -mapping analyzes the N path segments, or paths of length 1, originating from the t-node ( P k (1), f i). These are [ P 1 P k (1)] i, [ P 2 P k (1)]] i, ..., and [ P _ {N} P k (1)] i (line 5 in Fig. 16). By way of 1 [P {k (0)} P {k (1)}] _ {i} is assigned the weight WT [P {k (0)} P {k (1)}] i (line 6 in Fig. 16). This weight represents the cost of premapear function SDR f {i} the processor P {k (1)} taking into account the previous decisions, which are provided by the t-source node of the path 1 (P { k (0), f i-1). The t 1 -mapping calculates the cumulative cost CT [ P k (0) P k (1)] i = CT ( P k (0)}, f i-1) + WT [ P k (0) P k (1)] i (bold elements of line 12 in Fig. 16) for each path of 1. The path of 1 [ P k (0) \ text {*} P k (1)}] is obtained from:
y representa la decisión de premapeado en el t-nodo (P_{k(1)}, f_{i}). (La función argmin{x} da como resultado el/los argumento(s) que conducen al valor mínimo de x). El algoritmo finalmente resalta el camino de 1 [P_{k(0)\text{*}} P_{k(1)}]_{i} (línea 14, en negrita, de la Fig. 16) y almacena su coste acumulado en el t-nodo (P_{k(1)}, f_{i}) (línea 15).and represents the pre-mapping decision in the t-node ( P k (1), f i). (The argmin { x } function results in the argument (s) that lead to the minimum value of x ). The algorithm finally highlights the path of 1 [ P k (0) \ text {*}} P k (1)}] i (line 14, in bold, of Fig. 16) and stores its accumulated cost in the t-node ( P k (1), f i) (line 15).
El t_{w}-mapping (w > 1) analiza los N^{w} caminos-w que están asociados con el t-nodo (P_{k(1)}, f_{i}). Cualquiera de estos caminos-w se origina en el t-nodo en el paso i-1, discurre a través de (P_{k(1)}, f_{i}), y finaliza en el t-nodo en el paso i+w-1. El algoritmo calcula los costes acumulados debido a las líneas 5-12 de la Fig. 16. Entonces resuelveThe t w -mapping ( w > 1) analyzes the N w-paths that are associated with the t- node ( P k (1), f i). Any of these w-paths originates from the t-node in step i -1, runs through ( P k (1), f i), and ends at the t-node in the step i + w -1. The algorithm calculates the accumulated costs due to lines 5-12 of Fig. 16. Then it solves
que ofrece como resultado los índices del camino-w que tienen el mínimo coste acumulado. En el caso de que i < M-w+1, el t_{w}-mapping (w > 1) resalta el camino de 1 [P_{k(0)\text{*}} P_{k(1)}]_{i} y almacena el coste acumulado correspondiente en el t-nodo (P_{k(1)}, f_{i}) (líneas 13-15 en la Fig. 16). De lo contrario, resalta el camino-w [P_{k(0)\text{*}} P_{k(1)} P_{k(2)\text{*}} ... P_{k(w)\text{*}}]_{M-w+1} entero y almacena su coste acumulado total en el t-nodo (P_{k(1)}, f_{M-w+1}) (líneas 16-18 de la Fig. 16).which offers as a result the indices of the w-path that have the minimum accumulated cost. In the case that i < M - w +1, t w -mapping ( w > 1) highlights the path of 1 [ P k (0) \ text {*}} P _ {k ( 1)}] i and stores the corresponding cumulative cost in the t-node ( P k (1), f i) (lines 13-15 in Fig. 16). Otherwise, highlight the w-path [ P _ {k (0) \ text {*}} P _ {k (1)} P _ {k (2) \ text {*}} ... P _ { k (w) \ text {*}}] {M-w + 1} integer and stores its total cumulative cost in the t-node ( P k (1)}, f M-w + 1} ) (lines 16-18 of Fig. 16).
Todos los N t-nodos en el paso i (línea 4 de la Fig. 16) pueden ser procesados en paralelo. Una vez se ha finalizado su procesamiento, el t_{w}-mapping (w \geq 1), es decir el método propuesto por la presente invención, procede con el paso i+1 en el caso de que i < M-w+1 y si no es así procede con la parte III (línea 3).All N t -nodes in step i (line 4 of Fig. 16) can be processed in parallel. Once its processing has been completed, t w -mapping ( w ≥ 1), that is to say the method proposed by the present invention, proceeds with step i +1 in the event that i < M - w +1 and if not, proceed with part III (line 3).
La parte III del algoritmo postprocesa las decisiones de premapeado de las partes I y II. El t_{w}-mapping (w \geq 1) resalta en primer lugar el t-nodo en el paso M-w+1 que retiene el mínimo coste (línea 19 de la Fig. 16). Comenzando por este t-nodo, el diagrama t_{w}-mapping, es decir la matriz NxM, es recorrida hacia atrás (o hacia delante y hacia atrás en el caso de que w > 1) a lo largo de los caminos de 1 resaltados, a la vez que se resaltan todos los t-nodos que son atravesados durante ese recorrido (línea 20 de la Fig. 16). Esto ofrece como resultado M t-nodos resaltados, que son los finalmente seleccionados para especificar la propuesta de mapeado prevista para el problema particular, la función de coste y el tamaño de ventana escogidos.Part III of the postprocessing algorithm the pre-mapping decisions of parts I and II. The t w-mapping ( w ≥ 1) first highlights the t-node in step M - w + 1 that retains the minimum cost (line 19 of Fig. 16). Starting with this t-node, the t w -mapping diagram, that is, the NxM matrix, is traversed backward (or forward and backward in case w > 1) along the paths of 1 highlighted, while highlighting all the t-nodes that are traversed during that route (line 20 of Fig. 16). This results in M t- highlighted nodes, which are finally selected to specify the proposed mapping proposal for the particular problem, the cost function and the window size chosen.
Las partes II y III descritas indican que la ventana w controla el nivel de localidad (alcance local vs. global) de las decisiones de premapeado: EL algoritmo t_{1}-mapping está basado en decisiones locales. Sin embargo mantiene N premapeado en cada paso, uno por t-nodo, lo cual resulta en N (parcialmente) diferentes opciones de mapeado (expresiones en negrita en la Fig. 16).Parts II and III described indicate that the window w controls the level of local (vs. local global scope) decisions premapeado: Algorithm T _ {1} -mapping is based on local decisions. However, it keeps N pre-mapped at each step, one per t-node, which results in N (partially) different mapping options (bold expressions in Fig. 16).
Por otra parte, el algoritmo de t_{M-1}-mapping examina todos los N^{M} mapeados posibles de las M funciones a los N procesadores. En concreto, calcula los costes acumulados de los caminos-(M-1), es decir caminos de longitud (M-1), de todos los N^{M}-caminos-(M-1) diferentes que atraviesan el t-nodo (P_{k(1)}, f_{2}) (líneas 5-12 en la Fig. 16) y selecciona el de mínimo coste (líneas 17 y 18 de la Fig. 16). Esto lo lleva a cabo para todos los N t-nodos en el paso 2 (línea 4 de la Fig. 16). El algoritmo entonces resalta el t-nodo (P_{k(1)\text{*}}, f2) (línea 19 de la Fig. 16) y recorre hacia delante y hacia atrás el diagrama de t_{w}-mapping, es decir la matriz NxM de nodos interconectados, para obtener el mapeado final (línea 20 de la Fig. 16). Se encuentra así mediante la aplicación del método propuesto por la presente invención, una solución óptima para el problema dado y la función de coste utilizada.Moreover, the algorithm _ {M t-1} -mapping examines all N {M} possible mappings M functions to N processors. Specifically, calculates the costs arising from different paths - (M -1), ie paths of length (M-1) of all N {M} -caminos- (M -1) crossing the t - node ( P k (1), f 2) (lines 5-12 in Fig. 16) and select the lowest cost (lines 17 and 18 of Fig. 16). This is done for all N t- nodes in step 2 (line 4 of Fig. 16). The algorithm then highlights the t -node ( P k (1) \ text {*}}, f 2) (line 19 of Fig. 16) and travels back and forth the diagram of t w -mapping, that is the NxM matrix of interconnected nodes, to obtain the final mapping (line 20 of Fig. 16). It is thus found through the application of the method proposed by the present invention, an optimal solution for the given problem and the cost function used.
El parámetro w también controla el compromiso entre eficiencia de computación y rendimiento del mapeado: cuanto más grande sea el tamaño de la ventana w, mayor será la complejidad del algoritmo pero mejores serán los resultados del mapeado.The w parameter also controls the compromise between computing efficiency and mapping performance: the larger the size of the w window, the greater the complexity of the algorithm but the better the mapping results.
Si bien, tal y como se ha comentado anteriormente, el método propuesto por la presente invención no está limitado a un tipo de función de coste en concreto, para un ejemplo de realización se propone una función de coste que gestiona de manera adecuada los recursos de computación limitados de las plataformas SDR bajo condiciones de tiempo real exigentes, donde los recursos de computación constriñen el mapeado de la aplicación SDR.Although, as it has been commented above, the method proposed by the present invention does not It is limited to a particular type of cost function, for a embodiment example a cost function is proposed that manages adequately the limited computing resources of the SDR platforms under demanding real-time conditions, where computing resources constrain application mapping SDR
La función de coste propuesta es WT[P_{k(l-1)} P_{k(l)}]_{h} y define por tanto la función de coste como una superposición entre los costes de computación y los costes de comunicación, de la siguiente manera:The proposed cost function is WT [ P k (l-1) P k (l)] h and therefore defines the cost function as an overlap between computing costs and costs of communication, as follows:
donde WT_{comp} indica el coste de computación, y WT_{com} el coste de comunicación.where WT_ {comp} indicates the cost computing, and WT_ {com} the cost of communication.
Cualquier t-nodo (P_{k(l)}, f_{i}) almacena las capacidades de procesamiento C^{k(l), \ (i)} y los anchos de banda B^{k(l), \ (i)} restantes en función de las decisiones precedentes de premapeado. La función de coste calcula en primer lugar los costes de premapeado en los t-nodos (P_{1}, f_{1}), (P_{2}, f_{1}), ..., y (P_{N}, f_{1}) utilizando la parte derecha de (3b). Para cada t-nodo (P_{k(0)}, f_{1}), el requerimiento de procesamiento c_{1} de la función SDR f_{1} es entonces substraído de la capacidad de procesamiento inicial correspondiente C_{k(0)}. Esto actualiza las capacidades de procesado restantes para todos los t-nodos en el paso 1.Any t-node ( P k (l), f i) stores the processing capacities C k (l), \ (i)} and the bandwidths B k (l) , \ (i)} remaining based on the previous pre-mapping decisions. The cost function first calculates the pre-mapping costs in the t-nodes ( P 1, f 1), ( P 2, f 1), ..., and ( P N, f 1) using the right part of (3b). For each t-node ( P k (0), f 1), the processing requirement c 1 of the SDR function f 1 is then subtracted from the corresponding initial processing capacity C k (0). This updates the remaining processing capabilities for all t-nodes in step 1.
Antes de procesar el camino de longitud 1 [P_{k(l-1)} P_{k(l)}]_{h}, C^{(k(l), \ h)} y B^{(k(l), \ h)} son inicializados con C^{(k(l-1), \ h-1)} y B^{(k(l-1), \ h-1)}. El algoritmo entonces calcula WT[P_{k(l-1)} P_{k(l)}]_{h} antes de actualizar C_{k(l)}^{(k(l), \ h)} y B^{(k(l), \ h)}. En particular, c_{h} se substrae de C_{k(l)}^{(k(l), \ h)} tras calcular WT_{comp}[P_{k(l-1)} P_{k(l)}]_{h} (3b). B^{(k(l), \ h)}, por otra parte, se actualiza de manera dinámica, substrayendo cualquier ancho de banda requerido b_{jh} de la entrada correspondiente en B^{(k(l), \ h)} inmediatamente después de añadir b_{jh}/{\cdot} a WT_{com}[P_{k(l-1)} P_{k(l)}]_{h} (3c).Before processing the path of length 1 [ P k (l-1) P k (l)] h, C (k (l), \ h)} and B ^ (k (l), \ h)} are initialized with C (k (l-1), \ h-1)} and B (k (l-1), \ h-1)}. The algorithm then calculates WT [ P k (l-1) P k (l)] h before updating C k (l)} (k (l), \ h )} and B (k (l), \ h)}. In particular, c h is subtracted from C k (l)} {(k (l), \ h)} after calculating WT_ {comp} [ P k (l-1)} P _ {k (l)} h (3b). B ^ {(k (l) \ h)}, on the other hand, are updated dynamically, subtracting any required bandwidth b _ {jh} of the corresponding entry in B ^ {(k (l) \ h)} immediately after adding b jh / {\ cdot} to WT_ {com} [P_ {k (l-1)} P k (l)}] h (3c).
Tal y como se ha mencionado anteriormente, el método propuesto por la presente invención, también referido como algoritmo "t_{w}-mapping", es aplicable para diferentes tipos de modelado o abstración de un sistema SDR, tal como el que describe cada plataforma en función de sus recursos de computación o procesado y de comunicación (ver Fig. 1a) y el de la aplicación SDR en función de los recursos requeridos de procesado y de traspaso de datos (ver Fig. 1b).As mentioned above, the method proposed by the present invention, also referred to as the " t w-mapping" algorithm, is applicable for different types of modeling or abstraction of an SDR system, such as that described by each platform based on its computing or processing and communication resources (see Fig. 1a) and that of the SDR application based on the required processing and data transfer resources (see Fig. 1b).
Para otros ejemplos de realización los parámetros a tener en cuenta para modelar tanto el sistema SDR como la aplicación SDR pueden ser distintos o complementarios a los indicados referentes a los recursos de procesado y de comunicación.For other embodiments, the parameters to consider to model both the SDR system and the SDR application may be different or complementary to the indicated regarding processing resources and communication.
Un ejemplo de realización del método propuesto contempla utilizar el modelado propuesto en el artículo "Modelado para la gestión de recursos de computación en sistemas SDR", del XXI Simposium Nacional de la Unión científica Internacional de Radio, de los mismos inventores de la presente invención.An example of realization of the proposed method consider using the modeling proposed in the article "Modeling for the management of computing resources in SDR systems ", of XXI National Symposium of the International Scientific Union of Radio, of the same inventors of the present invention.
Los datos que son transmitidos o recibidos a través de un enlace inalámbrico necesitan ser procesados mientras existen datos a transmitir o recibir. Una aplicación SDR se ejecutará en general durante la sesión de usuario completa, aunque pueda haber periodos de tiempo en los que no se transmita ningún dato de usuario. El hecho de que una aplicación SDR pueda ser reemplazada por otra durante una sesión única de usuario no afecta a este procesamiento de datos continuo.The data that is transmitted or received to through a wireless link they need to be processed while There is data to transmit or receive. An SDR application will will run in general during the entire user session, although there may be periods of time in which no one is transmitted User data The fact that an SDR application can be replaced by another during a single user session does not affect to this continuous data processing.
Debido a ello, el método propuesto por la presente invención contempla, para un ejemplo de realización, "romper" la ejecución continua en ejecuciones periódicas dividiendo el tiempo de cada recurso de computación en segmentos temporales de computación equidistantes, o "time slots", y la aplicación SDR en etapas de "pipelining".Because of this, the method proposed by the The present invention contemplates, for an exemplary embodiment, "break" continuous execution into periodic executions dividing the time of each computing resource into segments equidistant temporary computing, or "time slots", and the SDR application in stages of "pipelining".
La introducción de segmentos temporales de computación permite identificar la capacidad de computación de un procesador tomando como base dichos segmentos temporales, generando así un modelado análogo al del artículo mencionado, pero incorporando la mencionada segmentación en "time slots".The introduction of temporary segments of computing allows to identify the computing capacity of a processor based on these temporary segments, generating thus a modeling analogous to that of the mentioned article, but incorporating the aforementioned segmentation in "time slots".
Ello proporciona un mecanismo básico para una gestión de recursos de computación eficiente, y es especialmente útil para satisfacer las demandas de latencia máxima de las aplicaciones SDR.This provides a basic mechanism for a efficient computing resource management, and it is especially useful to meet the maximum latency demands of SDR applications
La ejecución por proceso de segmentación de instrucciones, o "pipelined", de una aplicación SDR establece que, en cualquier "time slot", todas las funciones SDR procesan y propagan alguna parte de los datos. Es decir, el mismo procesado y la misma transferencia de datos se repite para cada segmento temporal en una porción de datos diferente. Ello introduce unos requerimientos de sincronización que PHAL (The Platform and Hardware Abstraction Layer'' satisface (ver articulo "Software radios: unifying the reconfiguration process over heterogeneous platforms", EURASIP Journal on Applied Signal Processing, vol. 2005, no. 16, pp. 2626-2640, Sept. 2005, de X. Reves, A. Gelonch, V. Marojevic, R. Ferrus).The execution by segmentation process of instructions, or "pipelined", of an SDR application set that, in any "time slot", all SDR functions process and propagate some part of the data. That is, the same processed and the same data transfer is repeated for each temporal segment in a different piece of data. It introduces some synchronization requirements that PHAL (The Platform and Hardware Abstraction Layer '' satisfies (see article "Software radios: unifying the reconfiguration process over heterogeneous platforms ", EURASIP Journal on Applied Signal Processing, vol. 2005, no. 16, pp. 2626-2640, Sept. 2005, of X. Reves, A. Gelonch, V. Marojevic, R. Ferrus).
El "Pipelining" también introduce la latencia, la cual debe ser mantenida dentro del servicio de radio y de los límites de dependencia de QoS (Calidad del servicio).The "Pipelining" also introduces the latency, which must be maintained within the radio service and of the dependency limits of QoS (Quality of service).
A partir de la discusión realizada en los párrafos anteriores, para el modelado del sistema y las aplicaciones SDR tomando como base los mencionados segmentos temporales, o "time slots", se derivan las nuevas unidades MOPTS (milones de operaciones por "time slot") y MBPTS (mega-bits por "time slot") como t_{ts}\cdotMOPS y t_{ts}\cdotMbps, donde t_{ts} es la duración del "time slot". MOPTS y MBPTS sincronizan los recursos de computación disponibles con la gestión en base a "time slots" y son las unidades básicas para el modelado referido.From the discussion in the previous paragraphs, for system modeling and SDR applications based on the aforementioned segments temporary, or "time slots", the new units are derived MOPTS (millions of operations per time slot) and MBPTS (mega-bits per "time slot") as t_ {ts} \ cdotMOPS and t_ {ts} \ cdotMbps, where t_ {ts} is the duration of the "time slot". MOPTS and MBPTS synchronize the computing resources available with time-based management slots "and are the basic units for the referred modeling.
Se propone definir tts según la siguiente ecuación:It is proposed to define tts according to the following equation:
donde n_{ts} son el número de "time slots" y L_{max} es la latencia máxima permisible para la programación eficiente de tareas en cada procesador, la cual está en función del retardo tolerable extremo a extremo de un enlace de comunicaciones vía radio debido a los acuerdo QoS y de servicio entre el proveedor de servicios de radio y el usuario final. En el modelado propuesto se asume que tts es suficientemente grande para permitir la ejecución (eficiente) de cualquier función SDR en la cadena de procesado.where n_ {ts} are the number of "time slots" and L_ {max} is the maximum allowable latency for the efficient programming of tasks in each processor, which it is a function of the tolerable end-to-end delay of a radio communication link due to QoS and service between the radio service provider and the user final. In the proposed modeling it is assumed that tts is sufficiently great to allow (efficient) execution of any function SDR in the chain indicted.
Si bien la descripción del método propuesto con
referencia a las Figs. 15, 16 y 17, se ha hecho en el presente
apartado denominándolo algoritmo de
"t_{w}-mapping", y utilizando
ecuaciones e instrucciones (las cuales se indican en la Fig. 16), la
Fig. 15 también es referenciada desde la descripción del método
propuesto hecha en el apartado de explicación de la invención, es
decir que la matriz allí referida como matriz de NxM nodos es, para
un ejemplo de realización, la matriz ilustrada en la Fig. 15,
incluyendo todos los elementos citados en dicha descripción hecha en
el mencionado apartado anterior, tales como los nodos de las
diferentes columnas (P_{1}, f_{1} ... P_{N}, f_{1}) a
(P_{1}, f_{M} ... P_{N}, f_{M}), así como las diferentes
conexiones entre nodos de dos columnas consecutivas ([P_{1}
P_{1}]_{2} ... [P_{1}
P_{N}]_{2} ...
[P_{N} P_{1}]_{2} ... [P_{N} P_{N}]_{2})
... ([P_{1} P_{1}]_{M} ... [P_{1}
P_{N}]_{M} ... [P_{N} P_{1}]_{M} ...
[P_{N} P_{N}]_{M}), que conforman lo que en el presente
apartado se han denominado como caminos de longitud 1, o segmentos
de camino cuando forman parte de una camino discurre a lo largo de
más de dos columnas.While the description of the proposed method with reference to Figs. 15, 16 and 17, it has been done in this section by calling it the " t w-mapping" algorithm, and using equations and instructions (which are indicated in Fig. 16), Fig. 15 is also referenced from the description of the proposed method made in the explanation section of the invention, that is to say that the matrix referred to there as a matrix of NxM nodes is, for an exemplary embodiment, the matrix illustrated in Fig. 15, including all the elements mentioned in said description made in the aforementioned section above, such as the nodes of the different columns (P_ {1}, f_ {1} ... P_ {N}, f_ {1}) a (P_ {1}, f_ { M} ... P_ {N}, f_ {M}), as well as the different connections between nodes of two consecutive columns ([P_ {1} P_ {1}] 2} ... [P_ {1}
P_ {N}] 2 ... [P_ {N} P_ {1} 2} ... [P_ {N} P_ {N}] 2) ... ([P_ {1} P_ {1} M {... [P_ {1} P_ {N}] _ {M} ... [P_ {P} {1}] M {... P_ {N} P_ {N}} {M}), which make up what in this section have been called as longitude 1 roads, or road segments when they are part of a road runs along more than two columns
Sirvan las referencias entre paréntesis incluidas en todas las reivindicaciones adjuntas como guía aclaratoria para una mejor comprensión de dichas reivindicaciones apoyándose en la Fig. 15.Serve references in parentheses included in all the attached claims as a guide clarification for a better understanding of these claims leaning on Fig. 15.
Un experto en la materia podría introducir cambios y modificaciones en los ejemplos de realización descritos sin salirse del alcance de la invención según está definido en las reivindicaciones adjuntas.A subject matter expert could introduce changes and modifications in the described embodiments without departing from the scope of the invention as defined in the attached claims.
Claims (19)
f_{4}).12. Method according to claim 11, characterized in that it comprises performing, for each of the columns following the fourth column (P 1, f 4, P 14, f 4), three three and advancing column by column, stages analogous to said stages d '') and e ''). for each additional three-node path that ends in each of the following or additional columns to the fourth column (P_ {1}, f_ {4} ... P_ {N}, f_ {4}), except for the path of three additional nodes ending in column M, to preselect for each intermediate candidate node of each additional three-node path, only part of the candidate path of three nodes of optimal cost that passes through it, obtaining N path segments of two nodes additional preselected for each additional column to the fourth column (P1, f4) ...
f_ {4}).
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ES200801671A ES2330604B1 (en) | 2008-05-30 | 2008-05-30 | METHOD FOR MANAGING COMPUTATION RESOURCES APPLICABLE TO A RADIO SYSTEM DEFINED BY PROGRAM. |
| PCT/ES2009/000300 WO2009147261A1 (en) | 2008-05-30 | 2009-05-28 | Method for managing computation resources which is applicable to a software-defined radio system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ES200801671A ES2330604B1 (en) | 2008-05-30 | 2008-05-30 | METHOD FOR MANAGING COMPUTATION RESOURCES APPLICABLE TO A RADIO SYSTEM DEFINED BY PROGRAM. |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| ES2330604A1 true ES2330604A1 (en) | 2009-12-11 |
| ES2330604B1 ES2330604B1 (en) | 2010-09-27 |
Family
ID=41352359
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES200801671A Active ES2330604B1 (en) | 2008-05-30 | 2008-05-30 | METHOD FOR MANAGING COMPUTATION RESOURCES APPLICABLE TO A RADIO SYSTEM DEFINED BY PROGRAM. |
Country Status (2)
| Country | Link |
|---|---|
| ES (1) | ES2330604B1 (en) |
| WO (1) | WO2009147261A1 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6768901B1 (en) * | 2000-06-02 | 2004-07-27 | General Dynamics Decision Systems, Inc. | Dynamic hardware resource manager for software-defined communications system |
-
2008
- 2008-05-30 ES ES200801671A patent/ES2330604B1/en active Active
-
2009
- 2009-05-28 WO PCT/ES2009/000300 patent/WO2009147261A1/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6768901B1 (en) * | 2000-06-02 | 2004-07-27 | General Dynamics Decision Systems, Inc. | Dynamic hardware resource manager for software-defined communications system |
Non-Patent Citations (2)
Also Published As
| Publication number | Publication date |
|---|---|
| ES2330604B1 (en) | 2010-09-27 |
| WO2009147261A1 (en) | 2009-12-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2315447T3 (en) | FIRST SHORTEST RUNNING METHOD BASED ON RESTRICTIONS FOR OPTICALLY TRANSMITTED TRANSMITTED NETWORKS. | |
| Ebrahimi et al. | HARAQ: congestion-aware learning model for highly adaptive routing algorithm in on-chip networks | |
| Ebrahimi et al. | MAFA: Adaptive fault-tolerant routing algorithm for networks-on-chip | |
| Sarbazi-Azad et al. | An accurate analytical model of adaptive wormhole routing in k-ary n-cubes interconnection networks | |
| US11979290B2 (en) | Controlling parallel data processing for service function chains | |
| CN107078971A (en) | Combination ensures handling capacity and the network-on-chip done one's best | |
| CN108234310A (en) | Multi-level interference networks, adaptive routing method and routing device | |
| Almasan et al. | Towards real-time routing optimization with deep reinforcement learning: Open challenges | |
| ES2330604B1 (en) | METHOD FOR MANAGING COMPUTATION RESOURCES APPLICABLE TO A RADIO SYSTEM DEFINED BY PROGRAM. | |
| CN107094116B (en) | A direct network routing method and system including cross-dimensional links | |
| Liu et al. | A dependency-graph based priority assignment algorithm for real-time traffic over NoCs with shared virtual-channels | |
| Holsmark et al. | Corrections to Chen and Chiu's Fault Tolerant Routing Algorithm for Mesh Networks. | |
| Chen et al. | High performance dynamic resource allocation for guaranteed service in network-on-chips | |
| Kowalski et al. | Scheduling problems in transportation networks of line topology | |
| Basit et al. | Interconnecting networks with optimized service provisioning | |
| ES2547366T3 (en) | A procedure to control the admission of a flow to a network and a network | |
| Kosowski et al. | Exploiting multi-interface networks: connectivity and cheapest paths | |
| CN103884343B (en) | Microwave integrated circuit (MIC) coprocessor-based whole-network shortest path planning parallelization method | |
| CN103346964B (en) | Based on the method and system that the satellite-ground link of multilayer satellite network switches | |
| Ho et al. | Spare capacity reprovisioning for shared backup path protection in dynamic generalized multi-protocol label switched networks | |
| JP4589978B2 (en) | Route setting method and route setting device | |
| Löbel et al. | The restricted modulo network simplex method for integrated periodic timetabling and passenger routing | |
| Chen et al. | Register-exchange based connection allocator for circuit switching nocs | |
| Buendía-López et al. | An evaluation of flex-algo traffic engineering techniques in segment-routing networks | |
| SRIDHARAW et al. | A Novel Variable Lie Hypergraph Technique for Cluster Based Routing in Opportunistic Networks. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EC2A | Search report published |
Date of ref document: 20091211 Kind code of ref document: A1 |
|
| FG2A | Definitive protection |
Ref document number: 2330604B1 Country of ref document: ES |