CN108092865B - Balanced distribution method for periodic bus messages - Google Patents
Balanced distribution method for periodic bus messages Download PDFInfo
- Publication number
- CN108092865B CN108092865B CN201711213098.9A CN201711213098A CN108092865B CN 108092865 B CN108092865 B CN 108092865B CN 201711213098 A CN201711213098 A CN 201711213098A CN 108092865 B CN108092865 B CN 108092865B
- Authority
- CN
- China
- Prior art keywords
- bus
- basic control
- cycle
- messages
- message
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
The invention relates to a balanced distribution method of periodic bus messages, which comprises the following steps: s1, designing a plurality of transmission cycles of the bus message according to the transmission delay requirement of the periodic bus message; and S2, distributing the plurality of bus messages in a plurality of basic control periods by using sequencing cumulative addition, so that the plurality of bus messages appear at least once in the plurality of basic control periods, and the dispersion of the sum of the lengths of the bus messages in each basic control period is minimized. The invention optimizes the result of the balanced distribution of the bus message and improves the distribution efficiency.
Description
Technical Field
The invention relates to the technical field of spacecraft bus communication, in particular to a periodic bus message balanced distribution method.
Background
It should be understood that the bus is a platform device interface communication mode which is most widely applied in spacecraft models, is responsible for transmission and distribution of platform basic state information and control instructions, and is a basic guarantee for on-orbit reliable flight of a spacecraft. The bus load represents the processing time sequence of the information on the bus to carry out reasonable allocation, and the uniform distribution of the bus flow in each basic cycle is ensured. Bus messages are generally divided into periodic bus messages and aperiodic bus messages, and system design generally adopts a silent period (i.e. a period without periodic bus message transmission) in a bus control period to transmit the aperiodic bus messages, so that the silent period balance which can be used for transmitting the aperiodic bus messages is simultaneously realized as long as the periodic bus messages are uniformly distributed in each control period. The bus load balancing plays a vital role in ensuring reliable and stable communication and timely processing of aperiodic messages of the spacecraft bus.
In order to realize the load balance distribution of the spacecraft bus, the conventional realization method has two modes of depending on manual exhaustive calculation of designers and computer software calculation. The manual calculation is based on a preliminarily designed bus protocol, various message frames are checked and compared, and the approximate balance of the bus flow in each period is finally realized through multiple rounds of manual iterative adjustment. The computer software calculation is to establish an objective function and solve the objective function by using a simulated annealing algorithm. However, the two existing technical means have the following defects:
(1) both manual calculation and calculation by computer software are not the only optimal solution, the final result is only to realize the approximate balance of the bus flow, and the calculation results obtained by different personnel and the calculation results obtained by using the algorithm for different times are different.
(2) The manual algorithm is low in efficiency, and the calculation repeated risk is high. The manual exhaustive calculation needs to manually arrange and compare each message frame, and the workload of the manual calculation is greatly increased along with the increase of the design complexity of the bus system.
(3) The computer is adopted for calculation, the algorithm is complex, the algorithm mechanism is not easy to master, and the method is not convenient to popularize and use.
Disclosure of Invention
The present invention aims to solve the above technical problems, and provides a method for allocating periodic bus messages in a balanced manner, so as to optimize the balanced allocation result of the bus messages and improve the allocation efficiency.
In order to achieve the above object, the present invention provides a method for balanced distribution of periodic bus messages, including the following steps: s1, designing a plurality of transmission cycles of the bus message according to the transmission delay requirement of the bus message; and S2, distributing the plurality of bus messages in a plurality of basic control periods by using a sequencing accumulation algorithm, so that the plurality of bus messages appear at least once in the plurality of basic control periods, and the dispersion of the sum of the lengths of the bus messages in each basic control period is minimized.
Preferably, in step S1, the minimum value of the transmission period is designed to be equal to the basic control period, and the ratio of the maximum value of the transmission period to the basic control period is N-2nN is an integer greater than 1, the bus cycle multiple of each bus message is defined as the minimum value of the transmission cycle divided by the transmission cycle of the bus message, the bus cycle multiples are respectively 2 from the bus message with the transmission cycle of the maximum value to the bus message with the transmission cycle of the minimum valuen、2n -1、…、2、1。
Preferably, step S2 includes: in N basic control cycles, sequentially distributing the multiple of the bus cycle to be 2 by using a sequencing accumulation algorithmn、2n-1…, 2.
Preferably, the bus cycle multiple is assigned to be 2 using a sorted accumulation algorithmn、2n-1…, 2 includes: s21, dividing N basic control periods into two time slots N1 and N2, and using sequencing accumulation algorithm to make the multiple of bus period be 2nThe bus messages of (2) are allocated in time slots N1 and N2, where N1 includes the first N/2 basic control cycles and N2 includes the last N/2 basic control cycles; s22, the slot N1 is divided equally into two slots N11 and N12, and the bus message allocated to the slot N1 in the step S21 is regarded as the bus cycle multiple of 2n-1Using a sorted accumulation algorithm to multiply the bus cycle by 2n-1The bus messages of (2) are allocated in time slots N11 and N12, where N11 includes the first N/4 basic control cycles and N12 includes the next N/4 basic control cycles; s23, the slot N2 is divided equally into two slots N21 and N22, and the bus message allocated to the slot N2 in the step S21 is regarded as the bus cycle multiple of 2n-1Using a sorted accumulation algorithm to multiply the bus cycle by 2n-1Is allocated in time slots N21 and N22, wherein N21 includes N/4 basic control cycles followed by N12, and N22 includes the last N/4 basic control cyclesA control period; s24, repeating the time slot decomposition step and the sequencing accumulation algorithm until the bus cycle multiple is 2n-2…, 2.
Preferably, the positive value used in the sorted-accumulation algorithm is the length value of the bus message.
Preferably, after the plurality of bus messages are distributed, the length of the bus message distributed to each basic control cycle and the cycle of the bus message are counted, and the bus message control table is output.
Compared with the existing manual calculation and calculation through computer software, the method for the balanced distribution of the periodic bus messages realizes the balanced distribution of a large number of variable-period bus messages, the distribution result is the only optimal solution, meanwhile, the method improves the efficiency of the balanced distribution of the bus messages, can be used for manual calculation and also can be used for calculation of information tools, the calculation amount is small, and the method is easy to popularize.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings needed in the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings without creative efforts.
FIG. 1 is a flow chart that schematically illustrates a method for balanced distribution of periodic bus messages, in accordance with the present invention;
FIG. 2 is a schematic flow chart diagram schematically illustrating a rank accumulation algorithm in accordance with the present invention;
fig. 3 is a detailed flow chart schematically showing a periodic bus message balanced distribution method according to the present invention.
Detailed Description
The description of the embodiments of this specification is intended to be taken in conjunction with the accompanying drawings, which are to be considered part of the complete specification. In the drawings, the shape or thickness of the embodiments may be exaggerated and simplified or conveniently indicated. Further, the components of the structures in the drawings are described separately, and it should be noted that the components not shown or described in the drawings are well known to those skilled in the art.
Any reference to directions and orientations in the description of the embodiments herein is for convenience of description only and should not be construed as limiting the scope of the invention. The following description of the preferred embodiments refers to combinations of features which may be present independently or in combination, and the present invention is not particularly limited to the preferred embodiments. The scope of the invention is defined by the claims.
Fig. 1 is a flow chart schematically showing a periodic bus message equal distribution method according to the present invention. As shown in fig. 1, the method for allocating messages in a periodic bus evenly according to the present invention includes the following steps: s1, designing a plurality of transmission cycles of the bus message according to the transmission delay requirement of the bus message; and S2, distributing the plurality of bus messages in a plurality of basic control periods by using a sequencing accumulation algorithm, so that the plurality of bus period messages appear at least once in the plurality of basic control periods, and the dispersion of the sum of the lengths of the bus messages in each basic control period is minimized.
In step S1, a transmission cycle of each bus message is designed according to the transmission delay requirement of the bus message, the bus transmission cycle is a variable, the minimum value of the transmission cycle is designed as a basic control cycle of the bus message, and the ratio of the maximum value of the transmission cycle to the basic control cycle is N-2nWhere n is an integer greater than 1, in other words, the bus cycle multiple of each bus message is defined as the minimum value of the transmission cycle divided by the transmission cycle of the bus message, starting from the bus message with the transmission cycle having the maximum value and continuing in succession to the bus message with the transmission cycle having the minimum value, the bus message multiples being 2 in each casen、2n -1、…、2。
As shown in fig. 2, the principle of the sort accumulation algorithm is as follows: firstly, M positive integers are sorted from large to small, the sorted values are Y1 > Y2 > Y3 > …, Ym, and the accumulated sum initial value of the two groups of numbers is initialized to be 0. Then, taking numbers from large to small and placing the numbers in one of the two groups with the smaller current data accumulation sum (if the current accumulation sum is equal, placing the numbers in the first group), after the data placement is finished, recalculating the current accumulation sum of the numbers in the group until all data allocation is finished. And after all data is placed, the cumulative sum of each set of numbers is calculated. That is, when placing data into A, B two groups, it is necessary to determine the size of the data accumulation sum in the current group a and the data accumulation sum in the current group B, and then place the current data into the group with smaller current accumulation sum, so as to ensure the balance of allocation.
In accordance with the above principle, step S2 of the periodic bus message equalization method according to the present invention includes sequentially allocating a multiple of 2 bus cycles among N basic control cycles using a sorted-accumulation algorithmn、2n-1…, 2.
Specifically, as shown in FIG. 3, the bus cycle multiple is sequentially assigned to be 2 using the sorted accumulation algorithmn、2n-1…, 2, the bus message flow is: s21, dividing N basic control periods into two time slots N1 and N2, and using sequencing accumulation algorithm to make the multiple of bus period be 2nThe bus messages of (2) are allocated in time slots N1 and N2, where N1 includes the first N/2 basic control cycles and N2 includes the last N/2 basic control cycles; s22, the slot N1 is divided equally into two slots N11 and N12, and the bus message allocated to the slot N1 in the step S21 is regarded as the bus cycle multiple of 2n-1Using a sorted accumulation algorithm to multiply the bus cycle by 2n-1The bus messages of (2) are allocated in time slots N11 and N12, where N11 includes the first N/4 basic control cycles and N12 includes the next N/4 basic control cycles; s23, the slot N2 is divided equally into two slots N21 and N22, and the bus message allocated to the slot N2 in the step S21 is regarded as the bus cycle multiple of 2n-1Using a sorted accumulation algorithm to multiply the bus cycle by 2n-1The bus messages of (2) are allocated in time slots N21 and N22, wherein N21 includes N/4 basic control cycles followed by N12, and N22 includes the last N/4 basic control cycles; s24, repeating the time slot decomposition step and the sorting accumulation calculationMethod, until the bus cycle multiple is 2n-2…, 2. Bus messages with a multiple of 1 bus cycle need to be transmitted in each basic control cycle and therefore need not be distributed.
It should be noted that the positive value used in the sorting accumulation algorithm is the length value of the bus message.
For example, the periods of the bus messages are designed to be 500ms, 1s, 2s, and 4s, respectively, so that the minimum period T0 is 500ms, and the ratio N of the maximum period to the minimum period is 2n8, n is 3. The bus cycle multiples of these bus messages are 8, 4, 2, 1, respectively, from large to small.
When bus allocation is carried out, a bus multiple of 2 is firstly allocatednI.e. a bus message of cycle 4 s. The N (i.e., 8) basic control periods are equally divided into the first and second slots N1 and N2, with N1 including the first four basic control periods and N2 including the second four basic control periods. Assuming a and b for a bus message of cycle 4s, a is allocated in slot N1 and b is allocated in slot N2 according to a sorted-accumulate algorithm.
Then, the bus multiple is assigned to be 2n-1I.e. a bus message of cycle 2 s. Assume that a bus message of cycle 2s has c and d. N1 is divided equally into two slots, N11 and N12, such that N11 includes the first two basic control periods and N12 includes the next two basic control periods.
At this time, the bus message allocated to the slot N1 above is considered to be a multiple of 2 bus cycles in the N1 slotn-1I.e. the message a above assigned to the time slot N1 is also considered to be a multiple of 2 bus cyclesn-1Of the bus message. The bus message that needs to be allocated in time slot N11 at this time includes a, c, and d. The bus messages are sorted by their length values, assuming c > d > a. C is first allocated in slot N11 and d is then allocated in slot N12, at which time a is also allocated in slot N12 since the sum (i.e., the bus message length) in slot N12 is less than the sum in slot N11.
Similarly, N2 is divided equally into two slots, N21 and N22, such that N21 includes the following N12Two basic control periods, N22, include the last two basic control periods. At this time, the bus message allocated to the slot N2 above is considered to be a multiple of 2 bus cycles in the N1 slotn-1I.e. the message b above assigned to the time slot N1, is also considered to be a multiple of 2 bus cyclesn-1Of the bus message. The bus message that needs to be allocated in time slot N11 at this time includes b, c, and d. The bus messages are sorted by their length values, assuming c > d > b. C is first allocated in slot N21 and d is then allocated in slot N22, at which time b is also allocated in slot N22 since the sum (i.e., the bus message length) in slot N22 is less than the sum in slot N21.
Repeating the above steps, dividing the time slots N11, N12, N21, N22 into two time slots, and then allocating the bus cycle multiple of 2n-2I.e. a bus message of cycle 1 s.
No allocation is required since bus messages with a multiple of 1 bus cycle (i.e. 500ms bus messages) need to be transmitted in each basic control cycle.
Through the scheme, the bus messages are distributed in a balanced manner, so that the bus messages in different periods appear at least once in N basic control periods, and the dispersion of the sum of the lengths of the bus messages in each basic control period is minimum.
In the method for the balanced distribution of the periodic bus messages, after the bus messages of a plurality of periods are distributed, the method also comprises the steps of counting the length of the bus messages distributed to each basic control period and the period of the bus messages and outputting a bus message control table.
As described above, according to the balanced distribution method for the periodic bus messages, compared with the existing manual calculation and the calculation by computer software, the balanced distribution of a large number of variable-period bus messages is realized, the distribution result is the only optimal solution, meanwhile, the method improves the efficiency of the balanced distribution of the bus messages, and the method can be used for both manual calculation and information tool calculation, has small calculation amount and is easy to popularize.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents, improvements and the like that fall within the spirit and principle of the present invention are intended to be included therein.
Claims (4)
1. A method for balanced distribution of periodic bus messages is characterized by comprising the following steps:
s1, designing a plurality of transmission cycles of the bus message according to the transmission delay requirement of the bus message; and
s2, distributing the plurality of bus messages in a plurality of basic control periods by using a sequencing and accumulating algorithm, so that the plurality of bus messages appear at least once in the plurality of basic control periods, and the dispersion of the sum of the lengths of the bus messages in each basic control period is minimized;
step S2 includes: in N basic control cycles, sequentially distributing the multiple of the bus cycle to be 2 by using a sequencing accumulation algorithmn、2n-1…, 2;
bus cycle multiple of 2 using a sorted accumulation algorithmn、2n-1…, 2, comprising:
s21, dividing N basic control periods into two time slots N1 and N2, and using sequencing accumulation algorithm to make the multiple of bus period be 2nThe bus messages of (2) are allocated in time slots N1 and N2, where N1 includes the first N/2 basic control cycles and N2 includes the last N/2 basic control cycles;
s22, the slot N1 is divided equally into two slots N11 and N12, and the bus message allocated to the slot N1 in the step S21 is regarded as the bus cycle multiple of 2n-1Using a sorted accumulation algorithm to multiply the bus cycle by 2n-1The bus messages of (2) are allocated in time slots N11 and N12, where N11 includes the first N/4 basic control cycles and N12 includes the next N/4 basic control cycles;
s23, the slot N2 is divided into two slots N21 and N22, and the bus message allocated to the slot N2 in the step S21 is regarded as the busMultiple of period of 2n-1Using a sorted accumulation algorithm to multiply the bus cycle by 2n-1The bus messages of (2) are allocated in time slots N21 and N22, wherein N21 includes N/4 basic control cycles followed by N12, and N22 includes the last N/4 basic control cycles;
s24, repeating the time slot decomposition step and the sequencing accumulation algorithm until the bus cycle multiple is 2n-2…, 2.
2. The method according to claim 1, wherein in step S1, the minimum value of the transmission period is designed to be equal to the basic control period, and the ratio of the maximum value of the transmission period to the basic control period is N-2nN is an integer greater than 1, the bus cycle multiple of each bus message is defined as the minimum value of the transmission cycle divided by the transmission cycle of the bus message, the bus cycle multiples are respectively 2 from the bus message with the transmission cycle of the maximum value to the bus message with the transmission cycle of the minimum valuen、2n-1、…、2、1。
3. The method of claim 1, wherein the positive value used in the ordered accumulation algorithm is a length value of the bus message.
4. The method according to claim 1, wherein after the plurality of bus messages are distributed, the length of the bus message distributed to each basic control cycle and the cycle of the bus message are counted, and a bus message control table is outputted.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711213098.9A CN108092865B (en) | 2017-11-28 | 2017-11-28 | Balanced distribution method for periodic bus messages |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711213098.9A CN108092865B (en) | 2017-11-28 | 2017-11-28 | Balanced distribution method for periodic bus messages |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108092865A CN108092865A (en) | 2018-05-29 |
CN108092865B true CN108092865B (en) | 2020-07-14 |
Family
ID=62173250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711213098.9A Active CN108092865B (en) | 2017-11-28 | 2017-11-28 | Balanced distribution method for periodic bus messages |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108092865B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515366B (en) * | 2021-04-09 | 2023-11-17 | 北京临近空间飞行器系统工程研究所 | Bus load balancing processing method, device and storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729941A (en) * | 2009-10-10 | 2010-06-09 | 浙江工业大学 | Novel fairness resource allocation system for unidirectional light bus network |
CN103077147A (en) * | 2012-12-31 | 2013-05-01 | 北京石竹科技股份有限公司 | Linked list-based full-function 1553B bus IP (Internet Protocol) core |
CN105245423A (en) * | 2015-08-28 | 2016-01-13 | 中国航天科工集团第三研究院第八三五七研究所 | Message transmission optimizing method of 1553B bus based on maximal distribution distance algorithm |
CN106302062A (en) * | 2016-08-10 | 2017-01-04 | 北京空间飞行器总体设计部 | A kind of communication time slot arrangement method based on Time Triggered bus |
CN106383744A (en) * | 2016-09-28 | 2017-02-08 | 北京润科通用技术有限公司 | Scheduling method and scheduling system for periodic messages in bus |
CN107370689A (en) * | 2017-09-08 | 2017-11-21 | 天津津航计算技术研究所 | A kind of Message Payload equalization methods of 1553B buses |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265485A1 (en) * | 2005-11-30 | 2009-10-22 | Broadcom Corporation | Ring-based cache coherent bus |
-
2017
- 2017-11-28 CN CN201711213098.9A patent/CN108092865B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729941A (en) * | 2009-10-10 | 2010-06-09 | 浙江工业大学 | Novel fairness resource allocation system for unidirectional light bus network |
CN103077147A (en) * | 2012-12-31 | 2013-05-01 | 北京石竹科技股份有限公司 | Linked list-based full-function 1553B bus IP (Internet Protocol) core |
CN105245423A (en) * | 2015-08-28 | 2016-01-13 | 中国航天科工集团第三研究院第八三五七研究所 | Message transmission optimizing method of 1553B bus based on maximal distribution distance algorithm |
CN106302062A (en) * | 2016-08-10 | 2017-01-04 | 北京空间飞行器总体设计部 | A kind of communication time slot arrangement method based on Time Triggered bus |
CN106383744A (en) * | 2016-09-28 | 2017-02-08 | 北京润科通用技术有限公司 | Scheduling method and scheduling system for periodic messages in bus |
CN107370689A (en) * | 2017-09-08 | 2017-11-21 | 天津津航计算技术研究所 | A kind of Message Payload equalization methods of 1553B buses |
Also Published As
Publication number | Publication date |
---|---|
CN108092865A (en) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101887382B (en) | The referee method of dynamic priority and device | |
CN112805971B (en) | Traffic shaping method and related equipment | |
US10101996B2 (en) | Arithmetic processing apparatus, information processing apparatus, and method of controlling information processing apparatus | |
CN106027308B (en) | A kind of spaceborne 1553B bus communication optimization method | |
CN111884890B (en) | Time-triggered bus planning and scheduling method | |
CN109818876A (en) | The generation method of global optimization's time trigger traffic scheduling table | |
CN108092865B (en) | Balanced distribution method for periodic bus messages | |
CN108763082A (en) | Test data generating method, device, computer equipment and storage medium | |
CN114647515A (en) | GPU cluster-oriented dynamic resource scheduling method | |
KR20210051604A (en) | Distributed Deep Learning System and Its Operation Method | |
CN109548161A (en) | A kind of method, apparatus and terminal device of wireless resource scheduling | |
CN115081958B (en) | User power adjustment method and device, electronic equipment and computer readable medium | |
Lin et al. | Performance analysis of IEEE 802.16 multicast and broadcast polling based bandwidth request | |
CN116627870A (en) | Dynamic priority weighted polling arbitration method and arbiter | |
US20200242724A1 (en) | Device and method for accelerating graphics processor units, and computer readable storage medium | |
CN107204881B (en) | Automobile FlexRay bus static segment message scheduling method | |
CN106803841A (en) | The read method of message queue data, device and distributed data-storage system | |
CN112561301A (en) | Work order distribution method, device, equipment and computer readable medium | |
WO2023109445A1 (en) | Service scheduling method based on time trigger ethernet | |
US20230004787A1 (en) | Distributed Deep Learning System | |
CN103873383A (en) | Queue scheduling method and device | |
CN114138053B (en) | Baud rate generator | |
CN107241234B (en) | AS5643 network simulation method and system | |
Kuang et al. | Entropy-based gradient compression for distributed deep learning | |
CN108243113B (en) | Random load balancing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |